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/DNS.hs b/gen/Gogol/DNS.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS.hs
@@ -0,0 +1,528 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.DNS
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+--
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference>
+module Gogol.DNS
+  ( -- * Configuration
+    dNSService,
+
+    -- * OAuth Scopes
+    CloudPlatform'FullControl,
+    CloudPlatform'ReadOnly,
+    Ndev'Clouddns'Readonly,
+    Ndev'Clouddns'Readwrite,
+
+    -- * Resources
+
+    -- ** dns.changes.create
+    DNSChangesCreateResource,
+    DNSChangesCreate (..),
+    newDNSChangesCreate,
+
+    -- ** dns.changes.get
+    DNSChangesGetResource,
+    DNSChangesGet (..),
+    newDNSChangesGet,
+
+    -- ** dns.changes.list
+    DNSChangesListResource,
+    DNSChangesList (..),
+    newDNSChangesList,
+
+    -- ** dns.dnsKeys.get
+    DNSDnsKeysGetResource,
+    DNSDnsKeysGet (..),
+    newDNSDnsKeysGet,
+
+    -- ** dns.dnsKeys.list
+    DNSDnsKeysListResource,
+    DNSDnsKeysList (..),
+    newDNSDnsKeysList,
+
+    -- ** dns.managedZoneOperations.get
+    DNSManagedZoneOperationsGetResource,
+    DNSManagedZoneOperationsGet (..),
+    newDNSManagedZoneOperationsGet,
+
+    -- ** dns.managedZoneOperations.list
+    DNSManagedZoneOperationsListResource,
+    DNSManagedZoneOperationsList (..),
+    newDNSManagedZoneOperationsList,
+
+    -- ** dns.managedZones.create
+    DNSManagedZonesCreateResource,
+    DNSManagedZonesCreate (..),
+    newDNSManagedZonesCreate,
+
+    -- ** dns.managedZones.delete
+    DNSManagedZonesDeleteResource,
+    DNSManagedZonesDelete (..),
+    newDNSManagedZonesDelete,
+
+    -- ** dns.managedZones.get
+    DNSManagedZonesGetResource,
+    DNSManagedZonesGet (..),
+    newDNSManagedZonesGet,
+
+    -- ** dns.managedZones.list
+    DNSManagedZonesListResource,
+    DNSManagedZonesList (..),
+    newDNSManagedZonesList,
+
+    -- ** dns.managedZones.patch
+    DNSManagedZonesPatchResource,
+    DNSManagedZonesPatch (..),
+    newDNSManagedZonesPatch,
+
+    -- ** dns.managedZones.update
+    DNSManagedZonesUpdateResource,
+    DNSManagedZonesUpdate (..),
+    newDNSManagedZonesUpdate,
+
+    -- ** dns.policies.create
+    DNSPoliciesCreateResource,
+    DNSPoliciesCreate (..),
+    newDNSPoliciesCreate,
+
+    -- ** dns.policies.delete
+    DNSPoliciesDeleteResource,
+    DNSPoliciesDelete (..),
+    newDNSPoliciesDelete,
+
+    -- ** dns.policies.get
+    DNSPoliciesGetResource,
+    DNSPoliciesGet (..),
+    newDNSPoliciesGet,
+
+    -- ** dns.policies.list
+    DNSPoliciesListResource,
+    DNSPoliciesList (..),
+    newDNSPoliciesList,
+
+    -- ** dns.policies.patch
+    DNSPoliciesPatchResource,
+    DNSPoliciesPatch (..),
+    newDNSPoliciesPatch,
+
+    -- ** dns.policies.update
+    DNSPoliciesUpdateResource,
+    DNSPoliciesUpdate (..),
+    newDNSPoliciesUpdate,
+
+    -- ** dns.projects.get
+    DNSProjectsGetResource,
+    DNSProjectsGet (..),
+    newDNSProjectsGet,
+
+    -- ** dns.resourceRecordSets.create
+    DNSResourceRecordSetsCreateResource,
+    DNSResourceRecordSetsCreate (..),
+    newDNSResourceRecordSetsCreate,
+
+    -- ** dns.resourceRecordSets.delete
+    DNSResourceRecordSetsDeleteResource,
+    DNSResourceRecordSetsDelete (..),
+    newDNSResourceRecordSetsDelete,
+
+    -- ** dns.resourceRecordSets.get
+    DNSResourceRecordSetsGetResource,
+    DNSResourceRecordSetsGet (..),
+    newDNSResourceRecordSetsGet,
+
+    -- ** dns.resourceRecordSets.list
+    DNSResourceRecordSetsListResource,
+    DNSResourceRecordSetsList (..),
+    newDNSResourceRecordSetsList,
+
+    -- ** dns.resourceRecordSets.patch
+    DNSResourceRecordSetsPatchResource,
+    DNSResourceRecordSetsPatch (..),
+    newDNSResourceRecordSetsPatch,
+
+    -- ** dns.responsePolicies.create
+    DNSResponsePoliciesCreateResource,
+    DNSResponsePoliciesCreate (..),
+    newDNSResponsePoliciesCreate,
+
+    -- ** dns.responsePolicies.delete
+    DNSResponsePoliciesDeleteResource,
+    DNSResponsePoliciesDelete (..),
+    newDNSResponsePoliciesDelete,
+
+    -- ** dns.responsePolicies.get
+    DNSResponsePoliciesGetResource,
+    DNSResponsePoliciesGet (..),
+    newDNSResponsePoliciesGet,
+
+    -- ** dns.responsePolicies.list
+    DNSResponsePoliciesListResource,
+    DNSResponsePoliciesList (..),
+    newDNSResponsePoliciesList,
+
+    -- ** dns.responsePolicies.patch
+    DNSResponsePoliciesPatchResource,
+    DNSResponsePoliciesPatch (..),
+    newDNSResponsePoliciesPatch,
+
+    -- ** dns.responsePolicies.update
+    DNSResponsePoliciesUpdateResource,
+    DNSResponsePoliciesUpdate (..),
+    newDNSResponsePoliciesUpdate,
+
+    -- ** dns.responsePolicyRules.create
+    DNSResponsePolicyRulesCreateResource,
+    DNSResponsePolicyRulesCreate (..),
+    newDNSResponsePolicyRulesCreate,
+
+    -- ** dns.responsePolicyRules.delete
+    DNSResponsePolicyRulesDeleteResource,
+    DNSResponsePolicyRulesDelete (..),
+    newDNSResponsePolicyRulesDelete,
+
+    -- ** dns.responsePolicyRules.get
+    DNSResponsePolicyRulesGetResource,
+    DNSResponsePolicyRulesGet (..),
+    newDNSResponsePolicyRulesGet,
+
+    -- ** dns.responsePolicyRules.list
+    DNSResponsePolicyRulesListResource,
+    DNSResponsePolicyRulesList (..),
+    newDNSResponsePolicyRulesList,
+
+    -- ** dns.responsePolicyRules.patch
+    DNSResponsePolicyRulesPatchResource,
+    DNSResponsePolicyRulesPatch (..),
+    newDNSResponsePolicyRulesPatch,
+
+    -- ** dns.responsePolicyRules.update
+    DNSResponsePolicyRulesUpdateResource,
+    DNSResponsePolicyRulesUpdate (..),
+    newDNSResponsePolicyRulesUpdate,
+
+    -- * Types
+
+    -- ** Xgafv
+    Xgafv (..),
+
+    -- ** Change
+    Change (..),
+    newChange,
+
+    -- ** Change_Status
+    Change_Status (..),
+
+    -- ** ChangesListResponse
+    ChangesListResponse (..),
+    newChangesListResponse,
+
+    -- ** DnsKey
+    DnsKey (..),
+    newDnsKey,
+
+    -- ** DnsKey_Algorithm
+    DnsKey_Algorithm (..),
+
+    -- ** DnsKey_Type
+    DnsKey_Type (..),
+
+    -- ** DnsKeyDigest
+    DnsKeyDigest (..),
+    newDnsKeyDigest,
+
+    -- ** DnsKeyDigest_Type
+    DnsKeyDigest_Type (..),
+
+    -- ** DnsKeySpec
+    DnsKeySpec (..),
+    newDnsKeySpec,
+
+    -- ** DnsKeySpec_Algorithm
+    DnsKeySpec_Algorithm (..),
+
+    -- ** DnsKeySpec_KeyType
+    DnsKeySpec_KeyType (..),
+
+    -- ** DnsKeysListResponse
+    DnsKeysListResponse (..),
+    newDnsKeysListResponse,
+
+    -- ** ManagedZone
+    ManagedZone (..),
+    newManagedZone,
+
+    -- ** ManagedZone_Labels
+    ManagedZone_Labels (..),
+    newManagedZone_Labels,
+
+    -- ** ManagedZone_Visibility
+    ManagedZone_Visibility (..),
+
+    -- ** ManagedZoneCloudLoggingConfig
+    ManagedZoneCloudLoggingConfig (..),
+    newManagedZoneCloudLoggingConfig,
+
+    -- ** ManagedZoneDnsSecConfig
+    ManagedZoneDnsSecConfig (..),
+    newManagedZoneDnsSecConfig,
+
+    -- ** ManagedZoneDnsSecConfig_NonExistence
+    ManagedZoneDnsSecConfig_NonExistence (..),
+
+    -- ** ManagedZoneDnsSecConfig_State
+    ManagedZoneDnsSecConfig_State (..),
+
+    -- ** ManagedZoneForwardingConfig
+    ManagedZoneForwardingConfig (..),
+    newManagedZoneForwardingConfig,
+
+    -- ** ManagedZoneForwardingConfigNameServerTarget
+    ManagedZoneForwardingConfigNameServerTarget (..),
+    newManagedZoneForwardingConfigNameServerTarget,
+
+    -- ** ManagedZoneForwardingConfigNameServerTarget_ForwardingPath
+    ManagedZoneForwardingConfigNameServerTarget_ForwardingPath (..),
+
+    -- ** ManagedZoneOperationsListResponse
+    ManagedZoneOperationsListResponse (..),
+    newManagedZoneOperationsListResponse,
+
+    -- ** ManagedZonePeeringConfig
+    ManagedZonePeeringConfig (..),
+    newManagedZonePeeringConfig,
+
+    -- ** ManagedZonePeeringConfigTargetNetwork
+    ManagedZonePeeringConfigTargetNetwork (..),
+    newManagedZonePeeringConfigTargetNetwork,
+
+    -- ** ManagedZonePrivateVisibilityConfig
+    ManagedZonePrivateVisibilityConfig (..),
+    newManagedZonePrivateVisibilityConfig,
+
+    -- ** ManagedZonePrivateVisibilityConfigGKECluster
+    ManagedZonePrivateVisibilityConfigGKECluster (..),
+    newManagedZonePrivateVisibilityConfigGKECluster,
+
+    -- ** ManagedZonePrivateVisibilityConfigNetwork
+    ManagedZonePrivateVisibilityConfigNetwork (..),
+    newManagedZonePrivateVisibilityConfigNetwork,
+
+    -- ** ManagedZoneReverseLookupConfig
+    ManagedZoneReverseLookupConfig (..),
+    newManagedZoneReverseLookupConfig,
+
+    -- ** ManagedZoneServiceDirectoryConfig
+    ManagedZoneServiceDirectoryConfig (..),
+    newManagedZoneServiceDirectoryConfig,
+
+    -- ** ManagedZoneServiceDirectoryConfigNamespace
+    ManagedZoneServiceDirectoryConfigNamespace (..),
+    newManagedZoneServiceDirectoryConfigNamespace,
+
+    -- ** ManagedZonesListResponse
+    ManagedZonesListResponse (..),
+    newManagedZonesListResponse,
+
+    -- ** Operation
+    Operation (..),
+    newOperation,
+
+    -- ** Operation_Status
+    Operation_Status (..),
+
+    -- ** OperationDnsKeyContext
+    OperationDnsKeyContext (..),
+    newOperationDnsKeyContext,
+
+    -- ** OperationManagedZoneContext
+    OperationManagedZoneContext (..),
+    newOperationManagedZoneContext,
+
+    -- ** PoliciesListResponse
+    PoliciesListResponse (..),
+    newPoliciesListResponse,
+
+    -- ** PoliciesPatchResponse
+    PoliciesPatchResponse (..),
+    newPoliciesPatchResponse,
+
+    -- ** PoliciesUpdateResponse
+    PoliciesUpdateResponse (..),
+    newPoliciesUpdateResponse,
+
+    -- ** Policy
+    Policy (..),
+    newPolicy,
+
+    -- ** PolicyAlternativeNameServerConfig
+    PolicyAlternativeNameServerConfig (..),
+    newPolicyAlternativeNameServerConfig,
+
+    -- ** PolicyAlternativeNameServerConfigTargetNameServer
+    PolicyAlternativeNameServerConfigTargetNameServer (..),
+    newPolicyAlternativeNameServerConfigTargetNameServer,
+
+    -- ** PolicyAlternativeNameServerConfigTargetNameServer_ForwardingPath
+    PolicyAlternativeNameServerConfigTargetNameServer_ForwardingPath (..),
+
+    -- ** PolicyNetwork
+    PolicyNetwork (..),
+    newPolicyNetwork,
+
+    -- ** Project
+    Project (..),
+    newProject,
+
+    -- ** Quota
+    Quota (..),
+    newQuota,
+
+    -- ** RRSetRoutingPolicy
+    RRSetRoutingPolicy (..),
+    newRRSetRoutingPolicy,
+
+    -- ** RRSetRoutingPolicyGeoPolicy
+    RRSetRoutingPolicyGeoPolicy (..),
+    newRRSetRoutingPolicyGeoPolicy,
+
+    -- ** RRSetRoutingPolicyGeoPolicyGeoPolicyItem
+    RRSetRoutingPolicyGeoPolicyGeoPolicyItem (..),
+    newRRSetRoutingPolicyGeoPolicyGeoPolicyItem,
+
+    -- ** RRSetRoutingPolicyWrrPolicy
+    RRSetRoutingPolicyWrrPolicy (..),
+    newRRSetRoutingPolicyWrrPolicy,
+
+    -- ** RRSetRoutingPolicyWrrPolicyWrrPolicyItem
+    RRSetRoutingPolicyWrrPolicyWrrPolicyItem (..),
+    newRRSetRoutingPolicyWrrPolicyWrrPolicyItem,
+
+    -- ** ResourceRecordSet
+    ResourceRecordSet (..),
+    newResourceRecordSet,
+
+    -- ** ResourceRecordSetsListResponse
+    ResourceRecordSetsListResponse (..),
+    newResourceRecordSetsListResponse,
+
+    -- ** ResponseHeader
+    ResponseHeader (..),
+    newResponseHeader,
+
+    -- ** ResponsePoliciesListResponse
+    ResponsePoliciesListResponse (..),
+    newResponsePoliciesListResponse,
+
+    -- ** ResponsePoliciesPatchResponse
+    ResponsePoliciesPatchResponse (..),
+    newResponsePoliciesPatchResponse,
+
+    -- ** ResponsePoliciesUpdateResponse
+    ResponsePoliciesUpdateResponse (..),
+    newResponsePoliciesUpdateResponse,
+
+    -- ** ResponsePolicy
+    ResponsePolicy (..),
+    newResponsePolicy,
+
+    -- ** ResponsePolicyGKECluster
+    ResponsePolicyGKECluster (..),
+    newResponsePolicyGKECluster,
+
+    -- ** ResponsePolicyNetwork
+    ResponsePolicyNetwork (..),
+    newResponsePolicyNetwork,
+
+    -- ** ResponsePolicyRule
+    ResponsePolicyRule (..),
+    newResponsePolicyRule,
+
+    -- ** ResponsePolicyRule_Behavior
+    ResponsePolicyRule_Behavior (..),
+
+    -- ** ResponsePolicyRuleLocalData
+    ResponsePolicyRuleLocalData (..),
+    newResponsePolicyRuleLocalData,
+
+    -- ** ResponsePolicyRulesListResponse
+    ResponsePolicyRulesListResponse (..),
+    newResponsePolicyRulesListResponse,
+
+    -- ** ResponsePolicyRulesPatchResponse
+    ResponsePolicyRulesPatchResponse (..),
+    newResponsePolicyRulesPatchResponse,
+
+    -- ** ResponsePolicyRulesUpdateResponse
+    ResponsePolicyRulesUpdateResponse (..),
+    newResponsePolicyRulesUpdateResponse,
+
+    -- ** ChangesListSortBy
+    ChangesListSortBy (..),
+
+    -- ** ManagedZoneOperationsListSortBy
+    ManagedZoneOperationsListSortBy (..),
+  )
+where
+
+import Gogol.DNS.Changes.Create
+import Gogol.DNS.Changes.Get
+import Gogol.DNS.Changes.List
+import Gogol.DNS.DnsKeys.Get
+import Gogol.DNS.DnsKeys.List
+import Gogol.DNS.ManagedZoneOperations.Get
+import Gogol.DNS.ManagedZoneOperations.List
+import Gogol.DNS.ManagedZones.Create
+import Gogol.DNS.ManagedZones.Delete
+import Gogol.DNS.ManagedZones.Get
+import Gogol.DNS.ManagedZones.List
+import Gogol.DNS.ManagedZones.Patch
+import Gogol.DNS.ManagedZones.Update
+import Gogol.DNS.Policies.Create
+import Gogol.DNS.Policies.Delete
+import Gogol.DNS.Policies.Get
+import Gogol.DNS.Policies.List
+import Gogol.DNS.Policies.Patch
+import Gogol.DNS.Policies.Update
+import Gogol.DNS.Projects.Get
+import Gogol.DNS.ResourceRecordSets.Create
+import Gogol.DNS.ResourceRecordSets.Delete
+import Gogol.DNS.ResourceRecordSets.Get
+import Gogol.DNS.ResourceRecordSets.List
+import Gogol.DNS.ResourceRecordSets.Patch
+import Gogol.DNS.ResponsePolicies.Create
+import Gogol.DNS.ResponsePolicies.Delete
+import Gogol.DNS.ResponsePolicies.Get
+import Gogol.DNS.ResponsePolicies.List
+import Gogol.DNS.ResponsePolicies.Patch
+import Gogol.DNS.ResponsePolicies.Update
+import Gogol.DNS.ResponsePolicyRules.Create
+import Gogol.DNS.ResponsePolicyRules.Delete
+import Gogol.DNS.ResponsePolicyRules.Get
+import Gogol.DNS.ResponsePolicyRules.List
+import Gogol.DNS.ResponsePolicyRules.Patch
+import Gogol.DNS.ResponsePolicyRules.Update
+import Gogol.DNS.Types
diff --git a/gen/Gogol/DNS/Changes/Create.hs b/gen/Gogol/DNS/Changes/Create.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/Changes/Create.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.DNS.Changes.Create
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Atomically updates the ResourceRecordSet collection.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.changes.create@.
+module Gogol.DNS.Changes.Create
+  ( -- * Resource
+    DNSChangesCreateResource,
+
+    -- ** Constructing a Request
+    DNSChangesCreate (..),
+    newDNSChangesCreate,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.changes.create@ method which the
+-- 'DNSChangesCreate' request conforms to.
+type DNSChangesCreateResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "managedZones"
+    Core.:> Core.Capture "managedZone" Core.Text
+    Core.:> "changes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Change
+    Core.:> Core.Post '[Core.JSON] Change
+
+-- | Atomically updates the ResourceRecordSet collection.
+--
+-- /See:/ 'newDNSChangesCreate' smart constructor.
+data DNSChangesCreate = DNSChangesCreate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    location :: Core.Text,
+    -- | Identifies the managed zone addressed by this request. Can be the managed zone name or ID.
+    managedZone :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: Change,
+    -- | Identifies the project addressed by 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 'DNSChangesCreate' with the minimum fields required to make a request.
+newDNSChangesCreate ::
+  -- |  Identifies the managed zone addressed by this request. Can be the managed zone name or ID. See 'managedZone'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Change ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  DNSChangesCreate
+newDNSChangesCreate managedZone payload project =
+  DNSChangesCreate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      clientOperationId = Core.Nothing,
+      location = "global",
+      managedZone = managedZone,
+      payload = payload,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSChangesCreate where
+  type Rs DNSChangesCreate = Change
+  type
+    Scopes DNSChangesCreate =
+      '[CloudPlatform'FullControl, Ndev'Clouddns'Readwrite]
+  requestClient DNSChangesCreate {..} =
+    go
+      project
+      location
+      managedZone
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSChangesCreateResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/Changes/Get.hs b/gen/Gogol/DNS/Changes/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/Changes/Get.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.DNS.Changes.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)
+--
+-- Fetches the representation of an existing Change.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.changes.get@.
+module Gogol.DNS.Changes.Get
+  ( -- * Resource
+    DNSChangesGetResource,
+
+    -- ** Constructing a Request
+    DNSChangesGet (..),
+    newDNSChangesGet,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.changes.get@ method which the
+-- 'DNSChangesGet' request conforms to.
+type DNSChangesGetResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "managedZones"
+    Core.:> Core.Capture "managedZone" Core.Text
+    Core.:> "changes"
+    Core.:> Core.Capture "changeId" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" 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] Change
+
+-- | Fetches the representation of an existing Change.
+--
+-- /See:/ 'newDNSChangesGet' smart constructor.
+data DNSChangesGet = DNSChangesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The identifier of the requested change, from a previous ResourceRecordSetsChangeResponse.
+    changeId :: Core.Text,
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    location :: Core.Text,
+    -- | Identifies the managed zone addressed by this request. Can be the managed zone name or ID.
+    managedZone :: Core.Text,
+    -- | Identifies the project addressed by 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 'DNSChangesGet' with the minimum fields required to make a request.
+newDNSChangesGet ::
+  -- |  The identifier of the requested change, from a previous ResourceRecordSetsChangeResponse. See 'changeId'.
+  Core.Text ->
+  -- |  Identifies the managed zone addressed by this request. Can be the managed zone name or ID. See 'managedZone'.
+  Core.Text ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  DNSChangesGet
+newDNSChangesGet changeId managedZone project =
+  DNSChangesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      changeId = changeId,
+      clientOperationId = Core.Nothing,
+      location = "global",
+      managedZone = managedZone,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSChangesGet where
+  type Rs DNSChangesGet = Change
+  type
+    Scopes DNSChangesGet =
+      '[ CloudPlatform'FullControl,
+         CloudPlatform'ReadOnly,
+         Ndev'Clouddns'Readonly,
+         Ndev'Clouddns'Readwrite
+       ]
+  requestClient DNSChangesGet {..} =
+    go
+      project
+      location
+      managedZone
+      changeId
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSChangesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/Changes/List.hs b/gen/Gogol/DNS/Changes/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/Changes/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.DNS.Changes.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)
+--
+-- Enumerates Changes to a ResourceRecordSet collection.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.changes.list@.
+module Gogol.DNS.Changes.List
+  ( -- * Resource
+    DNSChangesListResource,
+
+    -- ** Constructing a Request
+    DNSChangesList (..),
+    newDNSChangesList,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.changes.list@ method which the
+-- 'DNSChangesList' request conforms to.
+type DNSChangesListResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "managedZones"
+    Core.:> Core.Capture "managedZone" Core.Text
+    Core.:> "changes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Int32
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "sortBy" ChangesListSortBy
+    Core.:> Core.QueryParam "sortOrder" 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] ChangesListResponse
+
+-- | Enumerates Changes to a ResourceRecordSet collection.
+--
+-- /See:/ 'newDNSChangesList' smart constructor.
+data DNSChangesList = DNSChangesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    location :: Core.Text,
+    -- | Identifies the managed zone addressed by this request. Can be the managed zone name or ID.
+    managedZone :: Core.Text,
+    -- | Optional. Maximum number of results to be returned. If unspecified, the server decides how many results to return.
+    maxResults :: (Core.Maybe Core.Int32),
+    -- | Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Identifies the project addressed by this request.
+    project :: Core.Text,
+    -- | Sorting criterion. The only supported value is change sequence.
+    sortBy :: ChangesListSortBy,
+    -- | Sorting order direction: \'ascending\' or \'descending\'.
+    sortOrder :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'DNSChangesList' with the minimum fields required to make a request.
+newDNSChangesList ::
+  -- |  Identifies the managed zone addressed by this request. Can be the managed zone name or ID. See 'managedZone'.
+  Core.Text ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  DNSChangesList
+newDNSChangesList managedZone project =
+  DNSChangesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      location = "global",
+      managedZone = managedZone,
+      maxResults = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      sortBy = ChangesListSortBy_CHANGESEQUENCE,
+      sortOrder = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSChangesList where
+  type Rs DNSChangesList = ChangesListResponse
+  type
+    Scopes DNSChangesList =
+      '[ CloudPlatform'FullControl,
+         CloudPlatform'ReadOnly,
+         Ndev'Clouddns'Readonly,
+         Ndev'Clouddns'Readwrite
+       ]
+  requestClient DNSChangesList {..} =
+    go
+      project
+      location
+      managedZone
+      xgafv
+      accessToken
+      callback
+      maxResults
+      pageToken
+      (Core.Just sortBy)
+      sortOrder
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSChangesListResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/DnsKeys/Get.hs b/gen/Gogol/DNS/DnsKeys/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/DnsKeys/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.DNS.DnsKeys.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)
+--
+-- Fetches the representation of an existing DnsKey.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.dnsKeys.get@.
+module Gogol.DNS.DnsKeys.Get
+  ( -- * Resource
+    DNSDnsKeysGetResource,
+
+    -- ** Constructing a Request
+    DNSDnsKeysGet (..),
+    newDNSDnsKeysGet,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.dnsKeys.get@ method which the
+-- 'DNSDnsKeysGet' request conforms to.
+type DNSDnsKeysGetResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "managedZones"
+    Core.:> Core.Capture "managedZone" Core.Text
+    Core.:> "dnsKeys"
+    Core.:> Core.Capture "dnsKeyId" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" Core.Text
+    Core.:> Core.QueryParam "digestType" 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] DnsKey
+
+-- | Fetches the representation of an existing DnsKey.
+--
+-- /See:/ 'newDNSDnsKeysGet' smart constructor.
+data DNSDnsKeysGet = DNSDnsKeysGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    -- | An optional comma-separated list of digest types to compute and display for key signing keys. If omitted, the recommended digest type is computed and displayed.
+    digestType :: (Core.Maybe Core.Text),
+    -- | The identifier of the requested DnsKey.
+    dnsKeyId :: Core.Text,
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Identifies the managed zone addressed by this request. Can be the managed zone name or ID.
+    managedZone :: Core.Text,
+    -- | Identifies the project addressed by 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 'DNSDnsKeysGet' with the minimum fields required to make a request.
+newDNSDnsKeysGet ::
+  -- |  The identifier of the requested DnsKey. See 'dnsKeyId'.
+  Core.Text ->
+  -- |  Identifies the managed zone addressed by this request. Can be the managed zone name or ID. See 'managedZone'.
+  Core.Text ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  DNSDnsKeysGet
+newDNSDnsKeysGet dnsKeyId managedZone project =
+  DNSDnsKeysGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      clientOperationId = Core.Nothing,
+      digestType = Core.Nothing,
+      dnsKeyId = dnsKeyId,
+      location = "global",
+      managedZone = managedZone,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSDnsKeysGet where
+  type Rs DNSDnsKeysGet = DnsKey
+  type
+    Scopes DNSDnsKeysGet =
+      '[ CloudPlatform'FullControl,
+         CloudPlatform'ReadOnly,
+         Ndev'Clouddns'Readonly,
+         Ndev'Clouddns'Readwrite
+       ]
+  requestClient DNSDnsKeysGet {..} =
+    go
+      project
+      location
+      managedZone
+      dnsKeyId
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      digestType
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSDnsKeysGetResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/DnsKeys/List.hs b/gen/Gogol/DNS/DnsKeys/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/DnsKeys/List.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.DNS.DnsKeys.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)
+--
+-- Enumerates DnsKeys to a ResourceRecordSet collection.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.dnsKeys.list@.
+module Gogol.DNS.DnsKeys.List
+  ( -- * Resource
+    DNSDnsKeysListResource,
+
+    -- ** Constructing a Request
+    DNSDnsKeysList (..),
+    newDNSDnsKeysList,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.dnsKeys.list@ method which the
+-- 'DNSDnsKeysList' request conforms to.
+type DNSDnsKeysListResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "managedZones"
+    Core.:> Core.Capture "managedZone" Core.Text
+    Core.:> "dnsKeys"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "digestType" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Int32
+    Core.:> Core.QueryParam "pageToken" 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] DnsKeysListResponse
+
+-- | Enumerates DnsKeys to a ResourceRecordSet collection.
+--
+-- /See:/ 'newDNSDnsKeysList' smart constructor.
+data DNSDnsKeysList = DNSDnsKeysList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | An optional comma-separated list of digest types to compute and display for key signing keys. If omitted, the recommended digest type is computed and displayed.
+    digestType :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Identifies the managed zone addressed by this request. Can be the managed zone name or ID.
+    managedZone :: Core.Text,
+    -- | Optional. Maximum number of results to be returned. If unspecified, the server decides how many results to return.
+    maxResults :: (Core.Maybe Core.Int32),
+    -- | Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Identifies the project addressed by 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 'DNSDnsKeysList' with the minimum fields required to make a request.
+newDNSDnsKeysList ::
+  -- |  Identifies the managed zone addressed by this request. Can be the managed zone name or ID. See 'managedZone'.
+  Core.Text ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  DNSDnsKeysList
+newDNSDnsKeysList managedZone project =
+  DNSDnsKeysList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      digestType = Core.Nothing,
+      location = "global",
+      managedZone = managedZone,
+      maxResults = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSDnsKeysList where
+  type Rs DNSDnsKeysList = DnsKeysListResponse
+  type
+    Scopes DNSDnsKeysList =
+      '[ CloudPlatform'FullControl,
+         CloudPlatform'ReadOnly,
+         Ndev'Clouddns'Readonly,
+         Ndev'Clouddns'Readwrite
+       ]
+  requestClient DNSDnsKeysList {..} =
+    go
+      project
+      location
+      managedZone
+      xgafv
+      accessToken
+      callback
+      digestType
+      maxResults
+      pageToken
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSDnsKeysListResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/Internal/Product.hs b/gen/Gogol/DNS/Internal/Product.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/Internal/Product.hs
@@ -0,0 +1,2731 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.DNS.Internal.Product
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.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.DNS.Internal.Product
+  ( -- * Change
+    Change (..),
+    newChange,
+
+    -- * ChangesListResponse
+    ChangesListResponse (..),
+    newChangesListResponse,
+
+    -- * DnsKey
+    DnsKey (..),
+    newDnsKey,
+
+    -- * DnsKeyDigest
+    DnsKeyDigest (..),
+    newDnsKeyDigest,
+
+    -- * DnsKeySpec
+    DnsKeySpec (..),
+    newDnsKeySpec,
+
+    -- * DnsKeysListResponse
+    DnsKeysListResponse (..),
+    newDnsKeysListResponse,
+
+    -- * ManagedZone
+    ManagedZone (..),
+    newManagedZone,
+
+    -- * ManagedZone_Labels
+    ManagedZone_Labels (..),
+    newManagedZone_Labels,
+
+    -- * ManagedZoneCloudLoggingConfig
+    ManagedZoneCloudLoggingConfig (..),
+    newManagedZoneCloudLoggingConfig,
+
+    -- * ManagedZoneDnsSecConfig
+    ManagedZoneDnsSecConfig (..),
+    newManagedZoneDnsSecConfig,
+
+    -- * ManagedZoneForwardingConfig
+    ManagedZoneForwardingConfig (..),
+    newManagedZoneForwardingConfig,
+
+    -- * ManagedZoneForwardingConfigNameServerTarget
+    ManagedZoneForwardingConfigNameServerTarget (..),
+    newManagedZoneForwardingConfigNameServerTarget,
+
+    -- * ManagedZoneOperationsListResponse
+    ManagedZoneOperationsListResponse (..),
+    newManagedZoneOperationsListResponse,
+
+    -- * ManagedZonePeeringConfig
+    ManagedZonePeeringConfig (..),
+    newManagedZonePeeringConfig,
+
+    -- * ManagedZonePeeringConfigTargetNetwork
+    ManagedZonePeeringConfigTargetNetwork (..),
+    newManagedZonePeeringConfigTargetNetwork,
+
+    -- * ManagedZonePrivateVisibilityConfig
+    ManagedZonePrivateVisibilityConfig (..),
+    newManagedZonePrivateVisibilityConfig,
+
+    -- * ManagedZonePrivateVisibilityConfigGKECluster
+    ManagedZonePrivateVisibilityConfigGKECluster (..),
+    newManagedZonePrivateVisibilityConfigGKECluster,
+
+    -- * ManagedZonePrivateVisibilityConfigNetwork
+    ManagedZonePrivateVisibilityConfigNetwork (..),
+    newManagedZonePrivateVisibilityConfigNetwork,
+
+    -- * ManagedZoneReverseLookupConfig
+    ManagedZoneReverseLookupConfig (..),
+    newManagedZoneReverseLookupConfig,
+
+    -- * ManagedZoneServiceDirectoryConfig
+    ManagedZoneServiceDirectoryConfig (..),
+    newManagedZoneServiceDirectoryConfig,
+
+    -- * ManagedZoneServiceDirectoryConfigNamespace
+    ManagedZoneServiceDirectoryConfigNamespace (..),
+    newManagedZoneServiceDirectoryConfigNamespace,
+
+    -- * ManagedZonesListResponse
+    ManagedZonesListResponse (..),
+    newManagedZonesListResponse,
+
+    -- * Operation
+    Operation (..),
+    newOperation,
+
+    -- * OperationDnsKeyContext
+    OperationDnsKeyContext (..),
+    newOperationDnsKeyContext,
+
+    -- * OperationManagedZoneContext
+    OperationManagedZoneContext (..),
+    newOperationManagedZoneContext,
+
+    -- * PoliciesListResponse
+    PoliciesListResponse (..),
+    newPoliciesListResponse,
+
+    -- * PoliciesPatchResponse
+    PoliciesPatchResponse (..),
+    newPoliciesPatchResponse,
+
+    -- * PoliciesUpdateResponse
+    PoliciesUpdateResponse (..),
+    newPoliciesUpdateResponse,
+
+    -- * Policy
+    Policy (..),
+    newPolicy,
+
+    -- * PolicyAlternativeNameServerConfig
+    PolicyAlternativeNameServerConfig (..),
+    newPolicyAlternativeNameServerConfig,
+
+    -- * PolicyAlternativeNameServerConfigTargetNameServer
+    PolicyAlternativeNameServerConfigTargetNameServer (..),
+    newPolicyAlternativeNameServerConfigTargetNameServer,
+
+    -- * PolicyNetwork
+    PolicyNetwork (..),
+    newPolicyNetwork,
+
+    -- * Project
+    Project (..),
+    newProject,
+
+    -- * Quota
+    Quota (..),
+    newQuota,
+
+    -- * RRSetRoutingPolicy
+    RRSetRoutingPolicy (..),
+    newRRSetRoutingPolicy,
+
+    -- * RRSetRoutingPolicyGeoPolicy
+    RRSetRoutingPolicyGeoPolicy (..),
+    newRRSetRoutingPolicyGeoPolicy,
+
+    -- * RRSetRoutingPolicyGeoPolicyGeoPolicyItem
+    RRSetRoutingPolicyGeoPolicyGeoPolicyItem (..),
+    newRRSetRoutingPolicyGeoPolicyGeoPolicyItem,
+
+    -- * RRSetRoutingPolicyWrrPolicy
+    RRSetRoutingPolicyWrrPolicy (..),
+    newRRSetRoutingPolicyWrrPolicy,
+
+    -- * RRSetRoutingPolicyWrrPolicyWrrPolicyItem
+    RRSetRoutingPolicyWrrPolicyWrrPolicyItem (..),
+    newRRSetRoutingPolicyWrrPolicyWrrPolicyItem,
+
+    -- * ResourceRecordSet
+    ResourceRecordSet (..),
+    newResourceRecordSet,
+
+    -- * ResourceRecordSetsListResponse
+    ResourceRecordSetsListResponse (..),
+    newResourceRecordSetsListResponse,
+
+    -- * ResponseHeader
+    ResponseHeader (..),
+    newResponseHeader,
+
+    -- * ResponsePoliciesListResponse
+    ResponsePoliciesListResponse (..),
+    newResponsePoliciesListResponse,
+
+    -- * ResponsePoliciesPatchResponse
+    ResponsePoliciesPatchResponse (..),
+    newResponsePoliciesPatchResponse,
+
+    -- * ResponsePoliciesUpdateResponse
+    ResponsePoliciesUpdateResponse (..),
+    newResponsePoliciesUpdateResponse,
+
+    -- * ResponsePolicy
+    ResponsePolicy (..),
+    newResponsePolicy,
+
+    -- * ResponsePolicyGKECluster
+    ResponsePolicyGKECluster (..),
+    newResponsePolicyGKECluster,
+
+    -- * ResponsePolicyNetwork
+    ResponsePolicyNetwork (..),
+    newResponsePolicyNetwork,
+
+    -- * ResponsePolicyRule
+    ResponsePolicyRule (..),
+    newResponsePolicyRule,
+
+    -- * ResponsePolicyRuleLocalData
+    ResponsePolicyRuleLocalData (..),
+    newResponsePolicyRuleLocalData,
+
+    -- * ResponsePolicyRulesListResponse
+    ResponsePolicyRulesListResponse (..),
+    newResponsePolicyRulesListResponse,
+
+    -- * ResponsePolicyRulesPatchResponse
+    ResponsePolicyRulesPatchResponse (..),
+    newResponsePolicyRulesPatchResponse,
+
+    -- * ResponsePolicyRulesUpdateResponse
+    ResponsePolicyRulesUpdateResponse (..),
+    newResponsePolicyRulesUpdateResponse,
+  )
+where
+
+import Gogol.DNS.Internal.Sum
+import Gogol.Prelude qualified as Core
+
+-- | A Change represents a set of ResourceRecordSet additions and deletions applied atomically to a ManagedZone. ResourceRecordSets within a ManagedZone are modified by creating a new Change element in the Changes collection. In turn the Changes collection also records the past modifications to the ResourceRecordSets in a ManagedZone. The current state of the ManagedZone is the sum effect of applying all Change elements in the Changes collection in sequence.
+--
+-- /See:/ 'newChange' smart constructor.
+data Change = Change
+  { -- | Which ResourceRecordSets to add?
+    additions :: (Core.Maybe [ResourceRecordSet]),
+    -- | Which ResourceRecordSets to remove? Must match existing data exactly.
+    deletions :: (Core.Maybe [ResourceRecordSet]),
+    -- | Unique identifier for the resource; defined by the server (output only).
+    id :: (Core.Maybe Core.Text),
+    -- | If the DNS queries for the zone will be served.
+    isServing :: (Core.Maybe Core.Bool),
+    kind :: Core.Text,
+    -- | The time that this operation was started by the server (output only). This is in RFC3339 text format.
+    startTime :: (Core.Maybe Core.Text),
+    -- | Status of the operation (output only). A status of \"done\" means that the request to update the authoritative servers has been sent, but the servers might not be updated yet.
+    status :: (Core.Maybe Change_Status)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Change' with the minimum fields required to make a request.
+newChange ::
+  Change
+newChange =
+  Change
+    { additions = Core.Nothing,
+      deletions = Core.Nothing,
+      id = Core.Nothing,
+      isServing = Core.Nothing,
+      kind = "dns#change",
+      startTime = Core.Nothing,
+      status = Core.Nothing
+    }
+
+instance Core.FromJSON Change where
+  parseJSON =
+    Core.withObject
+      "Change"
+      ( \o ->
+          Change
+            Core.<$> (o Core..:? "additions")
+            Core.<*> (o Core..:? "deletions")
+            Core.<*> (o Core..:? "id")
+            Core.<*> (o Core..:? "isServing")
+            Core.<*> (o Core..:? "kind" Core..!= "dns#change")
+            Core.<*> (o Core..:? "startTime")
+            Core.<*> (o Core..:? "status")
+      )
+
+instance Core.ToJSON Change where
+  toJSON Change {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("additions" Core..=) Core.<$> additions,
+            ("deletions" Core..=) Core.<$> deletions,
+            ("id" Core..=) Core.<$> id,
+            ("isServing" Core..=) Core.<$> isServing,
+            Core.Just ("kind" Core..= kind),
+            ("startTime" Core..=) Core.<$> startTime,
+            ("status" Core..=) Core.<$> status
+          ]
+      )
+
+-- | The response to a request to enumerate Changes to a ResourceRecordSets collection.
+--
+-- /See:/ 'newChangesListResponse' smart constructor.
+data ChangesListResponse = ChangesListResponse
+  { -- | The requested changes.
+    changes :: (Core.Maybe [Change]),
+    header :: (Core.Maybe ResponseHeader),
+    -- | Type of resource.
+    kind :: Core.Text,
+    -- | The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your pagination token. This lets you retrieve the complete contents of even very large collections one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of all elements returned are an inconsistent view of the collection. You cannot retrieve a \"snapshot\" of collections larger than the maximum page size.
+    nextPageToken :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ChangesListResponse' with the minimum fields required to make a request.
+newChangesListResponse ::
+  ChangesListResponse
+newChangesListResponse =
+  ChangesListResponse
+    { changes = Core.Nothing,
+      header = Core.Nothing,
+      kind = "dns#changesListResponse",
+      nextPageToken = Core.Nothing
+    }
+
+instance Core.FromJSON ChangesListResponse where
+  parseJSON =
+    Core.withObject
+      "ChangesListResponse"
+      ( \o ->
+          ChangesListResponse
+            Core.<$> (o Core..:? "changes")
+            Core.<*> (o Core..:? "header")
+            Core.<*> (o Core..:? "kind" Core..!= "dns#changesListResponse")
+            Core.<*> (o Core..:? "nextPageToken")
+      )
+
+instance Core.ToJSON ChangesListResponse where
+  toJSON ChangesListResponse {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("changes" Core..=) Core.<$> changes,
+            ("header" Core..=) Core.<$> header,
+            Core.Just ("kind" Core..= kind),
+            ("nextPageToken" Core..=) Core.<$> nextPageToken
+          ]
+      )
+
+-- | A DNSSEC key pair.
+--
+-- /See:/ 'newDnsKey' smart constructor.
+data DnsKey = DnsKey
+  { -- | String mnemonic specifying the DNSSEC algorithm of this key. Immutable after creation time.
+    algorithm :: (Core.Maybe DnsKey_Algorithm),
+    -- | The time that this resource was created in the control plane. This is in RFC3339 text format. Output only.
+    creationTime :: (Core.Maybe Core.Text),
+    -- | A mutable string of at most 1024 characters associated with this resource for the user\'s convenience. Has no effect on the resource\'s function.
+    description :: (Core.Maybe Core.Text),
+    -- | Cryptographic hashes of the DNSKEY resource record associated with this DnsKey. These digests are needed to construct a DS record that points at this DNS key. Output only.
+    digests :: (Core.Maybe [DnsKeyDigest]),
+    -- | Unique identifier for the resource; defined by the server (output only).
+    id :: (Core.Maybe Core.Text),
+    -- | Active keys are used to sign subsequent changes to the ManagedZone. Inactive keys are still present as DNSKEY Resource Records for the use of resolvers validating existing signatures.
+    isActive :: (Core.Maybe Core.Bool),
+    -- | Length of the key in bits. Specified at creation time, and then immutable.
+    keyLength :: (Core.Maybe Core.Word32),
+    -- | The key tag is a non-cryptographic hash of the a DNSKEY resource record associated with this DnsKey. The key tag can be used to identify a DNSKEY more quickly (but it is not a unique identifier). In particular, the key tag is used in a parent zone\'s DS record to point at the DNSKEY in this child ManagedZone. The key tag is a number in the range [0, 65535] and the algorithm to calculate it is specified in RFC4034 Appendix B. Output only.
+    keyTag :: (Core.Maybe Core.Int32),
+    kind :: Core.Text,
+    -- | Base64 encoded public half of this key. Output only.
+    publicKey :: (Core.Maybe Core.Text),
+    -- | One of \"KEY/SIGNING\" or \"ZONE/SIGNING\". Keys of type KEY_SIGNING have the Secure Entry Point flag set and, when active, are used to sign only resource record sets of type DNSKEY. Otherwise, the Secure Entry Point flag is cleared, and this key is used to sign only resource record sets of other types. Immutable after creation time.
+    type' :: (Core.Maybe DnsKey_Type)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'DnsKey' with the minimum fields required to make a request.
+newDnsKey ::
+  DnsKey
+newDnsKey =
+  DnsKey
+    { algorithm = Core.Nothing,
+      creationTime = Core.Nothing,
+      description = Core.Nothing,
+      digests = Core.Nothing,
+      id = Core.Nothing,
+      isActive = Core.Nothing,
+      keyLength = Core.Nothing,
+      keyTag = Core.Nothing,
+      kind = "dns#dnsKey",
+      publicKey = Core.Nothing,
+      type' = Core.Nothing
+    }
+
+instance Core.FromJSON DnsKey where
+  parseJSON =
+    Core.withObject
+      "DnsKey"
+      ( \o ->
+          DnsKey
+            Core.<$> (o Core..:? "algorithm")
+            Core.<*> (o Core..:? "creationTime")
+            Core.<*> (o Core..:? "description")
+            Core.<*> (o Core..:? "digests")
+            Core.<*> (o Core..:? "id")
+            Core.<*> (o Core..:? "isActive")
+            Core.<*> (o Core..:? "keyLength")
+            Core.<*> (o Core..:? "keyTag")
+            Core.<*> (o Core..:? "kind" Core..!= "dns#dnsKey")
+            Core.<*> (o Core..:? "publicKey")
+            Core.<*> (o Core..:? "type")
+      )
+
+instance Core.ToJSON DnsKey where
+  toJSON DnsKey {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("algorithm" Core..=) Core.<$> algorithm,
+            ("creationTime" Core..=) Core.<$> creationTime,
+            ("description" Core..=) Core.<$> description,
+            ("digests" Core..=) Core.<$> digests,
+            ("id" Core..=) Core.<$> id,
+            ("isActive" Core..=) Core.<$> isActive,
+            ("keyLength" Core..=) Core.<$> keyLength,
+            ("keyTag" Core..=) Core.<$> keyTag,
+            Core.Just ("kind" Core..= kind),
+            ("publicKey" Core..=) Core.<$> publicKey,
+            ("type" Core..=) Core.<$> type'
+          ]
+      )
+
+--
+-- /See:/ 'newDnsKeyDigest' smart constructor.
+data DnsKeyDigest = DnsKeyDigest
+  { -- | The base-16 encoded bytes of this digest. Suitable for use in a DS resource record.
+    digest :: (Core.Maybe Core.Text),
+    -- | Specifies the algorithm used to calculate this digest.
+    type' :: (Core.Maybe DnsKeyDigest_Type)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'DnsKeyDigest' with the minimum fields required to make a request.
+newDnsKeyDigest ::
+  DnsKeyDigest
+newDnsKeyDigest =
+  DnsKeyDigest {digest = Core.Nothing, type' = Core.Nothing}
+
+instance Core.FromJSON DnsKeyDigest where
+  parseJSON =
+    Core.withObject
+      "DnsKeyDigest"
+      ( \o ->
+          DnsKeyDigest
+            Core.<$> (o Core..:? "digest")
+            Core.<*> (o Core..:? "type")
+      )
+
+instance Core.ToJSON DnsKeyDigest where
+  toJSON DnsKeyDigest {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("digest" Core..=) Core.<$> digest,
+            ("type" Core..=) Core.<$> type'
+          ]
+      )
+
+-- | Parameters for DnsKey key generation. Used for generating initial keys for a new ManagedZone and as default when adding a new DnsKey.
+--
+-- /See:/ 'newDnsKeySpec' smart constructor.
+data DnsKeySpec = DnsKeySpec
+  { -- | String mnemonic specifying the DNSSEC algorithm of this key.
+    algorithm :: (Core.Maybe DnsKeySpec_Algorithm),
+    -- | Length of the keys in bits.
+    keyLength :: (Core.Maybe Core.Word32),
+    -- | Specifies whether this is a key signing key (KSK) or a zone signing key (ZSK). Key signing keys have the Secure Entry Point flag set and, when active, are only used to sign resource record sets of type DNSKEY. Zone signing keys do not have the Secure Entry Point flag set and are used to sign all other types of resource record sets.
+    keyType :: (Core.Maybe DnsKeySpec_KeyType),
+    kind :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'DnsKeySpec' with the minimum fields required to make a request.
+newDnsKeySpec ::
+  DnsKeySpec
+newDnsKeySpec =
+  DnsKeySpec
+    { algorithm = Core.Nothing,
+      keyLength = Core.Nothing,
+      keyType = Core.Nothing,
+      kind = "dns#dnsKeySpec"
+    }
+
+instance Core.FromJSON DnsKeySpec where
+  parseJSON =
+    Core.withObject
+      "DnsKeySpec"
+      ( \o ->
+          DnsKeySpec
+            Core.<$> (o Core..:? "algorithm")
+            Core.<*> (o Core..:? "keyLength")
+            Core.<*> (o Core..:? "keyType")
+            Core.<*> (o Core..:? "kind" Core..!= "dns#dnsKeySpec")
+      )
+
+instance Core.ToJSON DnsKeySpec where
+  toJSON DnsKeySpec {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("algorithm" Core..=) Core.<$> algorithm,
+            ("keyLength" Core..=) Core.<$> keyLength,
+            ("keyType" Core..=) Core.<$> keyType,
+            Core.Just ("kind" Core..= kind)
+          ]
+      )
+
+-- | The response to a request to enumerate DnsKeys in a ManagedZone.
+--
+-- /See:/ 'newDnsKeysListResponse' smart constructor.
+data DnsKeysListResponse = DnsKeysListResponse
+  { -- | The requested resources.
+    dnsKeys :: (Core.Maybe [DnsKey]),
+    header :: (Core.Maybe ResponseHeader),
+    -- | Type of resource.
+    kind :: Core.Text,
+    -- | The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your pagination token. In this way you can retrieve the complete contents of even very large collections one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of all elements returned are an inconsistent view of the collection. There is no way to retrieve a \"snapshot\" of collections larger than the maximum page size.
+    nextPageToken :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'DnsKeysListResponse' with the minimum fields required to make a request.
+newDnsKeysListResponse ::
+  DnsKeysListResponse
+newDnsKeysListResponse =
+  DnsKeysListResponse
+    { dnsKeys = Core.Nothing,
+      header = Core.Nothing,
+      kind = "dns#dnsKeysListResponse",
+      nextPageToken = Core.Nothing
+    }
+
+instance Core.FromJSON DnsKeysListResponse where
+  parseJSON =
+    Core.withObject
+      "DnsKeysListResponse"
+      ( \o ->
+          DnsKeysListResponse
+            Core.<$> (o Core..:? "dnsKeys")
+            Core.<*> (o Core..:? "header")
+            Core.<*> (o Core..:? "kind" Core..!= "dns#dnsKeysListResponse")
+            Core.<*> (o Core..:? "nextPageToken")
+      )
+
+instance Core.ToJSON DnsKeysListResponse where
+  toJSON DnsKeysListResponse {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("dnsKeys" Core..=) Core.<$> dnsKeys,
+            ("header" Core..=) Core.<$> header,
+            Core.Just ("kind" Core..= kind),
+            ("nextPageToken" Core..=) Core.<$> nextPageToken
+          ]
+      )
+
+-- | A zone is a subtree of the DNS namespace under one administrative responsibility. A ManagedZone is a resource that represents a DNS zone hosted by the Cloud DNS service.
+--
+-- /See:/ 'newManagedZone' smart constructor.
+data ManagedZone = ManagedZone
+  { cloudLoggingConfig :: (Core.Maybe ManagedZoneCloudLoggingConfig),
+    -- | The time that this resource was created on the server. This is in RFC3339 text format. Output only.
+    creationTime :: (Core.Maybe Core.Text),
+    -- | A mutable string of at most 1024 characters associated with this resource for the user\'s convenience. Has no effect on the managed zone\'s function.
+    description :: (Core.Maybe Core.Text),
+    -- | The DNS name of this managed zone, for instance \"example.com.\".
+    dnsName :: (Core.Maybe Core.Text),
+    -- | DNSSEC configuration.
+    dnssecConfig :: (Core.Maybe ManagedZoneDnsSecConfig),
+    -- | The presence for this field indicates that outbound forwarding is enabled for this zone. The value of this field contains the set of destinations to forward to.
+    forwardingConfig :: (Core.Maybe ManagedZoneForwardingConfig),
+    -- | Unique identifier for the resource; defined by the server (output only)
+    id :: (Core.Maybe Core.Word64),
+    kind :: Core.Text,
+    -- | User labels.
+    labels :: (Core.Maybe ManagedZone_Labels),
+    -- | User assigned name for this resource. Must be unique within the project. The name must be 1-63 characters long, must begin with a letter, end with a letter or digit, and only contain lowercase letters, digits or dashes.
+    name :: (Core.Maybe Core.Text),
+    -- | Optionally specifies the NameServerSet for this ManagedZone. A NameServerSet is a set of DNS name servers that all host the same ManagedZones. Most users leave this field unset. If you need to use this field, contact your account team.
+    nameServerSet :: (Core.Maybe Core.Text),
+    -- | Delegate your managed_zone to these virtual name servers; defined by the server (output only)
+    nameServers :: (Core.Maybe [Core.Text]),
+    -- | The presence of this field indicates that DNS Peering is enabled for this zone. The value of this field contains the network to peer with.
+    peeringConfig :: (Core.Maybe ManagedZonePeeringConfig),
+    -- | For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.
+    privateVisibilityConfig :: (Core.Maybe ManagedZonePrivateVisibilityConfig),
+    -- | The presence of this field indicates that this is a managed reverse lookup zone and Cloud DNS resolves reverse lookup queries using automatically configured records for VPC resources. This only applies to networks listed under private/visibility/config.
+    reverseLookupConfig :: (Core.Maybe ManagedZoneReverseLookupConfig),
+    -- | This field links to the associated service directory namespace. Do not set this field for public zones or forwarding zones.
+    serviceDirectoryConfig :: (Core.Maybe ManagedZoneServiceDirectoryConfig),
+    -- | The zone\'s visibility: public zones are exposed to the Internet, while private zones are visible only to Virtual Private Cloud resources.
+    visibility :: (Core.Maybe ManagedZone_Visibility)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ManagedZone' with the minimum fields required to make a request.
+newManagedZone ::
+  ManagedZone
+newManagedZone =
+  ManagedZone
+    { cloudLoggingConfig = Core.Nothing,
+      creationTime = Core.Nothing,
+      description = Core.Nothing,
+      dnsName = Core.Nothing,
+      dnssecConfig = Core.Nothing,
+      forwardingConfig = Core.Nothing,
+      id = Core.Nothing,
+      kind = "dns#managedZone",
+      labels = Core.Nothing,
+      name = Core.Nothing,
+      nameServerSet = Core.Nothing,
+      nameServers = Core.Nothing,
+      peeringConfig = Core.Nothing,
+      privateVisibilityConfig = Core.Nothing,
+      reverseLookupConfig = Core.Nothing,
+      serviceDirectoryConfig = Core.Nothing,
+      visibility = Core.Nothing
+    }
+
+instance Core.FromJSON ManagedZone where
+  parseJSON =
+    Core.withObject
+      "ManagedZone"
+      ( \o ->
+          ManagedZone
+            Core.<$> (o Core..:? "cloudLoggingConfig")
+            Core.<*> (o Core..:? "creationTime")
+            Core.<*> (o Core..:? "description")
+            Core.<*> (o Core..:? "dnsName")
+            Core.<*> (o Core..:? "dnssecConfig")
+            Core.<*> (o Core..:? "forwardingConfig")
+            Core.<*> (o Core..:? "id" Core.<&> Core.fmap Core.fromAsText)
+            Core.<*> (o Core..:? "kind" Core..!= "dns#managedZone")
+            Core.<*> (o Core..:? "labels")
+            Core.<*> (o Core..:? "name")
+            Core.<*> (o Core..:? "nameServerSet")
+            Core.<*> (o Core..:? "nameServers")
+            Core.<*> (o Core..:? "peeringConfig")
+            Core.<*> (o Core..:? "privateVisibilityConfig")
+            Core.<*> (o Core..:? "reverseLookupConfig")
+            Core.<*> (o Core..:? "serviceDirectoryConfig")
+            Core.<*> (o Core..:? "visibility")
+      )
+
+instance Core.ToJSON ManagedZone where
+  toJSON ManagedZone {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("cloudLoggingConfig" Core..=) Core.<$> cloudLoggingConfig,
+            ("creationTime" Core..=) Core.<$> creationTime,
+            ("description" Core..=) Core.<$> description,
+            ("dnsName" Core..=) Core.<$> dnsName,
+            ("dnssecConfig" Core..=) Core.<$> dnssecConfig,
+            ("forwardingConfig" Core..=) Core.<$> forwardingConfig,
+            ("id" Core..=) Core.. Core.AsText Core.<$> id,
+            Core.Just ("kind" Core..= kind),
+            ("labels" Core..=) Core.<$> labels,
+            ("name" Core..=) Core.<$> name,
+            ("nameServerSet" Core..=) Core.<$> nameServerSet,
+            ("nameServers" Core..=) Core.<$> nameServers,
+            ("peeringConfig" Core..=) Core.<$> peeringConfig,
+            ("privateVisibilityConfig" Core..=)
+              Core.<$> privateVisibilityConfig,
+            ("reverseLookupConfig" Core..=) Core.<$> reverseLookupConfig,
+            ("serviceDirectoryConfig" Core..=) Core.<$> serviceDirectoryConfig,
+            ("visibility" Core..=) Core.<$> visibility
+          ]
+      )
+
+-- | User labels.
+--
+-- /See:/ 'newManagedZone_Labels' smart constructor.
+newtype ManagedZone_Labels = ManagedZone_Labels
+  { additional :: (Core.HashMap Core.Text Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ManagedZone_Labels' with the minimum fields required to make a request.
+newManagedZone_Labels ::
+  -- |  See 'additional'.
+  Core.HashMap Core.Text Core.Text ->
+  ManagedZone_Labels
+newManagedZone_Labels additional =
+  ManagedZone_Labels {additional = additional}
+
+instance Core.FromJSON ManagedZone_Labels where
+  parseJSON =
+    Core.withObject
+      "ManagedZone_Labels"
+      (\o -> ManagedZone_Labels Core.<$> (Core.parseJSONObject o))
+
+instance Core.ToJSON ManagedZone_Labels where
+  toJSON ManagedZone_Labels {..} = Core.toJSON additional
+
+-- | Cloud Logging configurations for publicly visible zones.
+--
+-- /See:/ 'newManagedZoneCloudLoggingConfig' smart constructor.
+data ManagedZoneCloudLoggingConfig = ManagedZoneCloudLoggingConfig
+  { -- | If set, enable query logging for this ManagedZone. False by default, making logging opt-in.
+    enableLogging :: (Core.Maybe Core.Bool),
+    kind :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ManagedZoneCloudLoggingConfig' with the minimum fields required to make a request.
+newManagedZoneCloudLoggingConfig ::
+  ManagedZoneCloudLoggingConfig
+newManagedZoneCloudLoggingConfig =
+  ManagedZoneCloudLoggingConfig
+    { enableLogging = Core.Nothing,
+      kind = "dns#managedZoneCloudLoggingConfig"
+    }
+
+instance Core.FromJSON ManagedZoneCloudLoggingConfig where
+  parseJSON =
+    Core.withObject
+      "ManagedZoneCloudLoggingConfig"
+      ( \o ->
+          ManagedZoneCloudLoggingConfig
+            Core.<$> (o Core..:? "enableLogging")
+            Core.<*> (o Core..:? "kind" Core..!= "dns#managedZoneCloudLoggingConfig")
+      )
+
+instance Core.ToJSON ManagedZoneCloudLoggingConfig where
+  toJSON ManagedZoneCloudLoggingConfig {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("enableLogging" Core..=) Core.<$> enableLogging,
+            Core.Just ("kind" Core..= kind)
+          ]
+      )
+
+--
+-- /See:/ 'newManagedZoneDnsSecConfig' smart constructor.
+data ManagedZoneDnsSecConfig = ManagedZoneDnsSecConfig
+  { -- | Specifies parameters for generating initial DnsKeys for this ManagedZone. Can only be changed while the state is OFF.
+    defaultKeySpecs :: (Core.Maybe [DnsKeySpec]),
+    kind :: Core.Text,
+    -- | Specifies the mechanism for authenticated denial-of-existence responses. Can only be changed while the state is OFF.
+    nonExistence :: (Core.Maybe ManagedZoneDnsSecConfig_NonExistence),
+    -- | Specifies whether DNSSEC is enabled, and what mode it is in.
+    state :: (Core.Maybe ManagedZoneDnsSecConfig_State)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ManagedZoneDnsSecConfig' with the minimum fields required to make a request.
+newManagedZoneDnsSecConfig ::
+  ManagedZoneDnsSecConfig
+newManagedZoneDnsSecConfig =
+  ManagedZoneDnsSecConfig
+    { defaultKeySpecs = Core.Nothing,
+      kind = "dns#managedZoneDnsSecConfig",
+      nonExistence = Core.Nothing,
+      state = Core.Nothing
+    }
+
+instance Core.FromJSON ManagedZoneDnsSecConfig where
+  parseJSON =
+    Core.withObject
+      "ManagedZoneDnsSecConfig"
+      ( \o ->
+          ManagedZoneDnsSecConfig
+            Core.<$> (o Core..:? "defaultKeySpecs")
+            Core.<*> (o Core..:? "kind" Core..!= "dns#managedZoneDnsSecConfig")
+            Core.<*> (o Core..:? "nonExistence")
+            Core.<*> (o Core..:? "state")
+      )
+
+instance Core.ToJSON ManagedZoneDnsSecConfig where
+  toJSON ManagedZoneDnsSecConfig {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("defaultKeySpecs" Core..=) Core.<$> defaultKeySpecs,
+            Core.Just ("kind" Core..= kind),
+            ("nonExistence" Core..=) Core.<$> nonExistence,
+            ("state" Core..=) Core.<$> state
+          ]
+      )
+
+--
+-- /See:/ 'newManagedZoneForwardingConfig' smart constructor.
+data ManagedZoneForwardingConfig = ManagedZoneForwardingConfig
+  { kind :: Core.Text,
+    -- | List of target name servers to forward to. Cloud DNS selects the best available name server if more than one target is given.
+    targetNameServers :: (Core.Maybe [ManagedZoneForwardingConfigNameServerTarget])
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ManagedZoneForwardingConfig' with the minimum fields required to make a request.
+newManagedZoneForwardingConfig ::
+  ManagedZoneForwardingConfig
+newManagedZoneForwardingConfig =
+  ManagedZoneForwardingConfig
+    { kind =
+        "dns#managedZoneForwardingConfig",
+      targetNameServers = Core.Nothing
+    }
+
+instance Core.FromJSON ManagedZoneForwardingConfig where
+  parseJSON =
+    Core.withObject
+      "ManagedZoneForwardingConfig"
+      ( \o ->
+          ManagedZoneForwardingConfig
+            Core.<$> (o Core..:? "kind" Core..!= "dns#managedZoneForwardingConfig")
+            Core.<*> (o Core..:? "targetNameServers")
+      )
+
+instance Core.ToJSON ManagedZoneForwardingConfig where
+  toJSON ManagedZoneForwardingConfig {..} =
+    Core.object
+      ( Core.catMaybes
+          [ Core.Just ("kind" Core..= kind),
+            ("targetNameServers" Core..=) Core.<$> targetNameServers
+          ]
+      )
+
+--
+-- /See:/ 'newManagedZoneForwardingConfigNameServerTarget' smart constructor.
+data ManagedZoneForwardingConfigNameServerTarget = ManagedZoneForwardingConfigNameServerTarget
+  { -- | Forwarding path for this NameServerTarget. If unset or set to DEFAULT, Cloud DNS makes forwarding decisions based on IP address ranges; that is, RFC1918 addresses go to the VPC network, non-RFC1918 addresses go to the internet. When set to PRIVATE, Cloud DNS always sends queries through the VPC network for this target.
+    forwardingPath ::
+      ( Core.Maybe
+          ManagedZoneForwardingConfigNameServerTarget_ForwardingPath
+      ),
+    -- | IPv4 address of a target name server.
+    ipv4Address :: (Core.Maybe Core.Text),
+    kind :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ManagedZoneForwardingConfigNameServerTarget' with the minimum fields required to make a request.
+newManagedZoneForwardingConfigNameServerTarget ::
+  ManagedZoneForwardingConfigNameServerTarget
+newManagedZoneForwardingConfigNameServerTarget =
+  ManagedZoneForwardingConfigNameServerTarget
+    { forwardingPath =
+        Core.Nothing,
+      ipv4Address = Core.Nothing,
+      kind =
+        "dns#managedZoneForwardingConfigNameServerTarget"
+    }
+
+instance Core.FromJSON ManagedZoneForwardingConfigNameServerTarget where
+  parseJSON =
+    Core.withObject
+      "ManagedZoneForwardingConfigNameServerTarget"
+      ( \o ->
+          ManagedZoneForwardingConfigNameServerTarget
+            Core.<$> (o Core..:? "forwardingPath")
+            Core.<*> (o Core..:? "ipv4Address")
+            Core.<*> ( o
+                         Core..:? "kind"
+                         Core..!= "dns#managedZoneForwardingConfigNameServerTarget"
+                     )
+      )
+
+instance Core.ToJSON ManagedZoneForwardingConfigNameServerTarget where
+  toJSON ManagedZoneForwardingConfigNameServerTarget {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("forwardingPath" Core..=) Core.<$> forwardingPath,
+            ("ipv4Address" Core..=) Core.<$> ipv4Address,
+            Core.Just ("kind" Core..= kind)
+          ]
+      )
+
+--
+-- /See:/ 'newManagedZoneOperationsListResponse' smart constructor.
+data ManagedZoneOperationsListResponse = ManagedZoneOperationsListResponse
+  { header :: (Core.Maybe ResponseHeader),
+    kind :: Core.Text,
+    -- | The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your page token. This lets you retrieve the complete contents of even very large collections one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of all elements returned are an inconsistent view of the collection. You cannot retrieve a consistent snapshot of a collection larger than the maximum page size.
+    nextPageToken :: (Core.Maybe Core.Text),
+    -- | The operation resources.
+    operations :: (Core.Maybe [Operation])
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ManagedZoneOperationsListResponse' with the minimum fields required to make a request.
+newManagedZoneOperationsListResponse ::
+  ManagedZoneOperationsListResponse
+newManagedZoneOperationsListResponse =
+  ManagedZoneOperationsListResponse
+    { header = Core.Nothing,
+      kind = "dns#managedZoneOperationsListResponse",
+      nextPageToken = Core.Nothing,
+      operations = Core.Nothing
+    }
+
+instance Core.FromJSON ManagedZoneOperationsListResponse where
+  parseJSON =
+    Core.withObject
+      "ManagedZoneOperationsListResponse"
+      ( \o ->
+          ManagedZoneOperationsListResponse
+            Core.<$> (o Core..:? "header")
+            Core.<*> ( o
+                         Core..:? "kind"
+                         Core..!= "dns#managedZoneOperationsListResponse"
+                     )
+            Core.<*> (o Core..:? "nextPageToken")
+            Core.<*> (o Core..:? "operations")
+      )
+
+instance Core.ToJSON ManagedZoneOperationsListResponse where
+  toJSON ManagedZoneOperationsListResponse {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("header" Core..=) Core.<$> header,
+            Core.Just ("kind" Core..= kind),
+            ("nextPageToken" Core..=) Core.<$> nextPageToken,
+            ("operations" Core..=) Core.<$> operations
+          ]
+      )
+
+--
+-- /See:/ 'newManagedZonePeeringConfig' smart constructor.
+data ManagedZonePeeringConfig = ManagedZonePeeringConfig
+  { kind :: Core.Text,
+    -- | The network with which to peer.
+    targetNetwork :: (Core.Maybe ManagedZonePeeringConfigTargetNetwork)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ManagedZonePeeringConfig' with the minimum fields required to make a request.
+newManagedZonePeeringConfig ::
+  ManagedZonePeeringConfig
+newManagedZonePeeringConfig =
+  ManagedZonePeeringConfig
+    { kind = "dns#managedZonePeeringConfig",
+      targetNetwork = Core.Nothing
+    }
+
+instance Core.FromJSON ManagedZonePeeringConfig where
+  parseJSON =
+    Core.withObject
+      "ManagedZonePeeringConfig"
+      ( \o ->
+          ManagedZonePeeringConfig
+            Core.<$> (o Core..:? "kind" Core..!= "dns#managedZonePeeringConfig")
+            Core.<*> (o Core..:? "targetNetwork")
+      )
+
+instance Core.ToJSON ManagedZonePeeringConfig where
+  toJSON ManagedZonePeeringConfig {..} =
+    Core.object
+      ( Core.catMaybes
+          [ Core.Just ("kind" Core..= kind),
+            ("targetNetwork" Core..=) Core.<$> targetNetwork
+          ]
+      )
+
+--
+-- /See:/ 'newManagedZonePeeringConfigTargetNetwork' smart constructor.
+data ManagedZonePeeringConfigTargetNetwork = ManagedZonePeeringConfigTargetNetwork
+  { -- | The time at which the zone was deactivated, in RFC 3339 date-time format. An empty string indicates that the peering connection is active. The producer network can deactivate a zone. The zone is automatically deactivated if the producer network that the zone targeted is deleted. Output only.
+    deactivateTime :: (Core.Maybe Core.Text),
+    kind :: Core.Text,
+    -- | The fully qualified URL of the VPC network to forward queries to. This should be formatted like https:\/\/www.googleapis.com\/compute\/v1\/projects\/{project}\/global\/networks\/{network}
+    networkUrl :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ManagedZonePeeringConfigTargetNetwork' with the minimum fields required to make a request.
+newManagedZonePeeringConfigTargetNetwork ::
+  ManagedZonePeeringConfigTargetNetwork
+newManagedZonePeeringConfigTargetNetwork =
+  ManagedZonePeeringConfigTargetNetwork
+    { deactivateTime =
+        Core.Nothing,
+      kind = "dns#managedZonePeeringConfigTargetNetwork",
+      networkUrl = Core.Nothing
+    }
+
+instance Core.FromJSON ManagedZonePeeringConfigTargetNetwork where
+  parseJSON =
+    Core.withObject
+      "ManagedZonePeeringConfigTargetNetwork"
+      ( \o ->
+          ManagedZonePeeringConfigTargetNetwork
+            Core.<$> (o Core..:? "deactivateTime")
+            Core.<*> ( o
+                         Core..:? "kind"
+                         Core..!= "dns#managedZonePeeringConfigTargetNetwork"
+                     )
+            Core.<*> (o Core..:? "networkUrl")
+      )
+
+instance Core.ToJSON ManagedZonePeeringConfigTargetNetwork where
+  toJSON ManagedZonePeeringConfigTargetNetwork {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("deactivateTime" Core..=) Core.<$> deactivateTime,
+            Core.Just ("kind" Core..= kind),
+            ("networkUrl" Core..=) Core.<$> networkUrl
+          ]
+      )
+
+--
+-- /See:/ 'newManagedZonePrivateVisibilityConfig' smart constructor.
+data ManagedZonePrivateVisibilityConfig = ManagedZonePrivateVisibilityConfig
+  { -- | The list of Google Kubernetes Engine clusters that can see this zone.
+    gkeClusters :: (Core.Maybe [ManagedZonePrivateVisibilityConfigGKECluster]),
+    kind :: Core.Text,
+    -- | The list of VPC networks that can see this zone.
+    networks :: (Core.Maybe [ManagedZonePrivateVisibilityConfigNetwork])
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ManagedZonePrivateVisibilityConfig' with the minimum fields required to make a request.
+newManagedZonePrivateVisibilityConfig ::
+  ManagedZonePrivateVisibilityConfig
+newManagedZonePrivateVisibilityConfig =
+  ManagedZonePrivateVisibilityConfig
+    { gkeClusters = Core.Nothing,
+      kind = "dns#managedZonePrivateVisibilityConfig",
+      networks = Core.Nothing
+    }
+
+instance Core.FromJSON ManagedZonePrivateVisibilityConfig where
+  parseJSON =
+    Core.withObject
+      "ManagedZonePrivateVisibilityConfig"
+      ( \o ->
+          ManagedZonePrivateVisibilityConfig
+            Core.<$> (o Core..:? "gkeClusters")
+            Core.<*> ( o
+                         Core..:? "kind"
+                         Core..!= "dns#managedZonePrivateVisibilityConfig"
+                     )
+            Core.<*> (o Core..:? "networks")
+      )
+
+instance Core.ToJSON ManagedZonePrivateVisibilityConfig where
+  toJSON ManagedZonePrivateVisibilityConfig {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("gkeClusters" Core..=) Core.<$> gkeClusters,
+            Core.Just ("kind" Core..= kind),
+            ("networks" Core..=) Core.<$> networks
+          ]
+      )
+
+--
+-- /See:/ 'newManagedZonePrivateVisibilityConfigGKECluster' smart constructor.
+data ManagedZonePrivateVisibilityConfigGKECluster = ManagedZonePrivateVisibilityConfigGKECluster
+  { -- | The resource name of the cluster to bind this ManagedZone to. This should be specified in the format like: projects\//\/locations\//\/clusters\/*. This is referenced from GKE projects.locations.clusters.get API: https:\/\/cloud.google.com\/kubernetes-engine\/docs\/reference\/rest\/v1\/projects.locations.clusters\/get
+    gkeClusterName :: (Core.Maybe Core.Text),
+    kind :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ManagedZonePrivateVisibilityConfigGKECluster' with the minimum fields required to make a request.
+newManagedZonePrivateVisibilityConfigGKECluster ::
+  ManagedZonePrivateVisibilityConfigGKECluster
+newManagedZonePrivateVisibilityConfigGKECluster =
+  ManagedZonePrivateVisibilityConfigGKECluster
+    { gkeClusterName =
+        Core.Nothing,
+      kind =
+        "dns#managedZonePrivateVisibilityConfigGKECluster"
+    }
+
+instance Core.FromJSON ManagedZonePrivateVisibilityConfigGKECluster where
+  parseJSON =
+    Core.withObject
+      "ManagedZonePrivateVisibilityConfigGKECluster"
+      ( \o ->
+          ManagedZonePrivateVisibilityConfigGKECluster
+            Core.<$> (o Core..:? "gkeClusterName")
+            Core.<*> ( o
+                         Core..:? "kind"
+                         Core..!= "dns#managedZonePrivateVisibilityConfigGKECluster"
+                     )
+      )
+
+instance Core.ToJSON ManagedZonePrivateVisibilityConfigGKECluster where
+  toJSON ManagedZonePrivateVisibilityConfigGKECluster {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("gkeClusterName" Core..=) Core.<$> gkeClusterName,
+            Core.Just ("kind" Core..= kind)
+          ]
+      )
+
+--
+-- /See:/ 'newManagedZonePrivateVisibilityConfigNetwork' smart constructor.
+data ManagedZonePrivateVisibilityConfigNetwork = ManagedZonePrivateVisibilityConfigNetwork
+  { kind :: Core.Text,
+    -- | The fully qualified URL of the VPC network to bind to. Format this URL like https:\/\/www.googleapis.com\/compute\/v1\/projects\/{project}\/global\/networks\/{network}
+    networkUrl :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ManagedZonePrivateVisibilityConfigNetwork' with the minimum fields required to make a request.
+newManagedZonePrivateVisibilityConfigNetwork ::
+  ManagedZonePrivateVisibilityConfigNetwork
+newManagedZonePrivateVisibilityConfigNetwork =
+  ManagedZonePrivateVisibilityConfigNetwork
+    { kind =
+        "dns#managedZonePrivateVisibilityConfigNetwork",
+      networkUrl = Core.Nothing
+    }
+
+instance Core.FromJSON ManagedZonePrivateVisibilityConfigNetwork where
+  parseJSON =
+    Core.withObject
+      "ManagedZonePrivateVisibilityConfigNetwork"
+      ( \o ->
+          ManagedZonePrivateVisibilityConfigNetwork
+            Core.<$> ( o
+                         Core..:? "kind"
+                         Core..!= "dns#managedZonePrivateVisibilityConfigNetwork"
+                     )
+            Core.<*> (o Core..:? "networkUrl")
+      )
+
+instance Core.ToJSON ManagedZonePrivateVisibilityConfigNetwork where
+  toJSON ManagedZonePrivateVisibilityConfigNetwork {..} =
+    Core.object
+      ( Core.catMaybes
+          [ Core.Just ("kind" Core..= kind),
+            ("networkUrl" Core..=) Core.<$> networkUrl
+          ]
+      )
+
+--
+-- /See:/ 'newManagedZoneReverseLookupConfig' smart constructor.
+newtype ManagedZoneReverseLookupConfig = ManagedZoneReverseLookupConfig
+  { kind :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ManagedZoneReverseLookupConfig' with the minimum fields required to make a request.
+newManagedZoneReverseLookupConfig ::
+  ManagedZoneReverseLookupConfig
+newManagedZoneReverseLookupConfig =
+  ManagedZoneReverseLookupConfig
+    { kind =
+        "dns#managedZoneReverseLookupConfig"
+    }
+
+instance Core.FromJSON ManagedZoneReverseLookupConfig where
+  parseJSON =
+    Core.withObject
+      "ManagedZoneReverseLookupConfig"
+      ( \o ->
+          ManagedZoneReverseLookupConfig
+            Core.<$> (o Core..:? "kind" Core..!= "dns#managedZoneReverseLookupConfig")
+      )
+
+instance Core.ToJSON ManagedZoneReverseLookupConfig where
+  toJSON ManagedZoneReverseLookupConfig {..} =
+    Core.object (Core.catMaybes [Core.Just ("kind" Core..= kind)])
+
+-- | Contains information about Service Directory-backed zones.
+--
+-- /See:/ 'newManagedZoneServiceDirectoryConfig' smart constructor.
+data ManagedZoneServiceDirectoryConfig = ManagedZoneServiceDirectoryConfig
+  { kind :: Core.Text,
+    -- | Contains information about the namespace associated with the zone.
+    namespace :: (Core.Maybe ManagedZoneServiceDirectoryConfigNamespace)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ManagedZoneServiceDirectoryConfig' with the minimum fields required to make a request.
+newManagedZoneServiceDirectoryConfig ::
+  ManagedZoneServiceDirectoryConfig
+newManagedZoneServiceDirectoryConfig =
+  ManagedZoneServiceDirectoryConfig
+    { kind =
+        "dns#managedZoneServiceDirectoryConfig",
+      namespace = Core.Nothing
+    }
+
+instance Core.FromJSON ManagedZoneServiceDirectoryConfig where
+  parseJSON =
+    Core.withObject
+      "ManagedZoneServiceDirectoryConfig"
+      ( \o ->
+          ManagedZoneServiceDirectoryConfig
+            Core.<$> ( o
+                         Core..:? "kind"
+                         Core..!= "dns#managedZoneServiceDirectoryConfig"
+                     )
+            Core.<*> (o Core..:? "namespace")
+      )
+
+instance Core.ToJSON ManagedZoneServiceDirectoryConfig where
+  toJSON ManagedZoneServiceDirectoryConfig {..} =
+    Core.object
+      ( Core.catMaybes
+          [ Core.Just ("kind" Core..= kind),
+            ("namespace" Core..=) Core.<$> namespace
+          ]
+      )
+
+--
+-- /See:/ 'newManagedZoneServiceDirectoryConfigNamespace' smart constructor.
+data ManagedZoneServiceDirectoryConfigNamespace = ManagedZoneServiceDirectoryConfigNamespace
+  { -- | The time that the namespace backing this zone was deleted; an empty string if it still exists. This is in RFC3339 text format. Output only.
+    deletionTime :: (Core.Maybe Core.Text),
+    kind :: Core.Text,
+    -- | The fully qualified URL of the namespace associated with the zone. Format must be https:\/\/servicedirectory.googleapis.com\/v1\/projects\/{project}\/locations\/{location}\/namespaces\/{namespace}
+    namespaceUrl :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ManagedZoneServiceDirectoryConfigNamespace' with the minimum fields required to make a request.
+newManagedZoneServiceDirectoryConfigNamespace ::
+  ManagedZoneServiceDirectoryConfigNamespace
+newManagedZoneServiceDirectoryConfigNamespace =
+  ManagedZoneServiceDirectoryConfigNamespace
+    { deletionTime =
+        Core.Nothing,
+      kind =
+        "dns#managedZoneServiceDirectoryConfigNamespace",
+      namespaceUrl = Core.Nothing
+    }
+
+instance Core.FromJSON ManagedZoneServiceDirectoryConfigNamespace where
+  parseJSON =
+    Core.withObject
+      "ManagedZoneServiceDirectoryConfigNamespace"
+      ( \o ->
+          ManagedZoneServiceDirectoryConfigNamespace
+            Core.<$> (o Core..:? "deletionTime")
+            Core.<*> ( o
+                         Core..:? "kind"
+                         Core..!= "dns#managedZoneServiceDirectoryConfigNamespace"
+                     )
+            Core.<*> (o Core..:? "namespaceUrl")
+      )
+
+instance Core.ToJSON ManagedZoneServiceDirectoryConfigNamespace where
+  toJSON ManagedZoneServiceDirectoryConfigNamespace {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("deletionTime" Core..=) Core.<$> deletionTime,
+            Core.Just ("kind" Core..= kind),
+            ("namespaceUrl" Core..=) Core.<$> namespaceUrl
+          ]
+      )
+
+--
+-- /See:/ 'newManagedZonesListResponse' smart constructor.
+data ManagedZonesListResponse = ManagedZonesListResponse
+  { header :: (Core.Maybe ResponseHeader),
+    -- | Type of resource.
+    kind :: Core.Text,
+    -- | The managed zone resources.
+    managedZones :: (Core.Maybe [ManagedZone]),
+    -- | The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your page token. This lets you the complete contents of even very large collections one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of all elements returned are an inconsistent view of the collection. You cannot retrieve a consistent snapshot of a collection larger than the maximum page size.
+    nextPageToken :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ManagedZonesListResponse' with the minimum fields required to make a request.
+newManagedZonesListResponse ::
+  ManagedZonesListResponse
+newManagedZonesListResponse =
+  ManagedZonesListResponse
+    { header = Core.Nothing,
+      kind = "dns#managedZonesListResponse",
+      managedZones = Core.Nothing,
+      nextPageToken = Core.Nothing
+    }
+
+instance Core.FromJSON ManagedZonesListResponse where
+  parseJSON =
+    Core.withObject
+      "ManagedZonesListResponse"
+      ( \o ->
+          ManagedZonesListResponse
+            Core.<$> (o Core..:? "header")
+            Core.<*> (o Core..:? "kind" Core..!= "dns#managedZonesListResponse")
+            Core.<*> (o Core..:? "managedZones")
+            Core.<*> (o Core..:? "nextPageToken")
+      )
+
+instance Core.ToJSON ManagedZonesListResponse where
+  toJSON ManagedZonesListResponse {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("header" Core..=) Core.<$> header,
+            Core.Just ("kind" Core..= kind),
+            ("managedZones" Core..=) Core.<$> managedZones,
+            ("nextPageToken" Core..=) Core.<$> nextPageToken
+          ]
+      )
+
+-- | An operation represents a successful mutation performed on a Cloud DNS resource. Operations provide: - An audit log of server resource mutations. - A way to recover\/retry API calls in the case where the response is never received by the caller. Use the caller specified client/operation/id.
+--
+-- /See:/ 'newOperation' smart constructor.
+data Operation = Operation
+  { -- | Only populated if the operation targeted a DnsKey (output only).
+    dnsKeyContext :: (Core.Maybe OperationDnsKeyContext),
+    -- | Unique identifier for the resource. This is the client/operation/id if the client specified it when the mutation was initiated, otherwise, it is generated by the server. The name must be 1-63 characters long and match the regular expression [-a-z0-9]? (output only)
+    id :: (Core.Maybe Core.Text),
+    kind :: Core.Text,
+    -- | The time that this operation was started by the server. This is in RFC3339 text format (output only).
+    startTime :: (Core.Maybe Core.Text),
+    -- | Status of the operation. Can be one of the following: \"PENDING\" or \"DONE\" (output only). A status of \"DONE\" means that the request to update the authoritative servers has been sent, but the servers might not be updated yet.
+    status :: (Core.Maybe Operation_Status),
+    -- | Type of the operation. Operations include insert, update, and delete (output only).
+    type' :: (Core.Maybe Core.Text),
+    -- | User who requested the operation, for example: user\@example.com. cloud-dns-system for operations automatically done by the system. (output only)
+    user :: (Core.Maybe Core.Text),
+    -- | Only populated if the operation targeted a ManagedZone (output only).
+    zoneContext :: (Core.Maybe OperationManagedZoneContext)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Operation' with the minimum fields required to make a request.
+newOperation ::
+  Operation
+newOperation =
+  Operation
+    { dnsKeyContext = Core.Nothing,
+      id = Core.Nothing,
+      kind = "dns#operation",
+      startTime = Core.Nothing,
+      status = Core.Nothing,
+      type' = Core.Nothing,
+      user = Core.Nothing,
+      zoneContext = Core.Nothing
+    }
+
+instance Core.FromJSON Operation where
+  parseJSON =
+    Core.withObject
+      "Operation"
+      ( \o ->
+          Operation
+            Core.<$> (o Core..:? "dnsKeyContext")
+            Core.<*> (o Core..:? "id")
+            Core.<*> (o Core..:? "kind" Core..!= "dns#operation")
+            Core.<*> (o Core..:? "startTime")
+            Core.<*> (o Core..:? "status")
+            Core.<*> (o Core..:? "type")
+            Core.<*> (o Core..:? "user")
+            Core.<*> (o Core..:? "zoneContext")
+      )
+
+instance Core.ToJSON Operation where
+  toJSON Operation {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("dnsKeyContext" Core..=) Core.<$> dnsKeyContext,
+            ("id" Core..=) Core.<$> id,
+            Core.Just ("kind" Core..= kind),
+            ("startTime" Core..=) Core.<$> startTime,
+            ("status" Core..=) Core.<$> status,
+            ("type" Core..=) Core.<$> type',
+            ("user" Core..=) Core.<$> user,
+            ("zoneContext" Core..=) Core.<$> zoneContext
+          ]
+      )
+
+--
+-- /See:/ 'newOperationDnsKeyContext' smart constructor.
+data OperationDnsKeyContext = OperationDnsKeyContext
+  { -- | The post-operation DnsKey resource.
+    newValue' :: (Core.Maybe DnsKey),
+    -- | The pre-operation DnsKey resource.
+    oldValue :: (Core.Maybe DnsKey)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'OperationDnsKeyContext' with the minimum fields required to make a request.
+newOperationDnsKeyContext ::
+  OperationDnsKeyContext
+newOperationDnsKeyContext =
+  OperationDnsKeyContext
+    { newValue' = Core.Nothing,
+      oldValue = Core.Nothing
+    }
+
+instance Core.FromJSON OperationDnsKeyContext where
+  parseJSON =
+    Core.withObject
+      "OperationDnsKeyContext"
+      ( \o ->
+          OperationDnsKeyContext
+            Core.<$> (o Core..:? "newValue")
+            Core.<*> (o Core..:? "oldValue")
+      )
+
+instance Core.ToJSON OperationDnsKeyContext where
+  toJSON OperationDnsKeyContext {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("newValue" Core..=) Core.<$> newValue',
+            ("oldValue" Core..=) Core.<$> oldValue
+          ]
+      )
+
+--
+-- /See:/ 'newOperationManagedZoneContext' smart constructor.
+data OperationManagedZoneContext = OperationManagedZoneContext
+  { -- | The post-operation ManagedZone resource.
+    newValue' :: (Core.Maybe ManagedZone),
+    -- | The pre-operation ManagedZone resource.
+    oldValue :: (Core.Maybe ManagedZone)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'OperationManagedZoneContext' with the minimum fields required to make a request.
+newOperationManagedZoneContext ::
+  OperationManagedZoneContext
+newOperationManagedZoneContext =
+  OperationManagedZoneContext
+    { newValue' = Core.Nothing,
+      oldValue = Core.Nothing
+    }
+
+instance Core.FromJSON OperationManagedZoneContext where
+  parseJSON =
+    Core.withObject
+      "OperationManagedZoneContext"
+      ( \o ->
+          OperationManagedZoneContext
+            Core.<$> (o Core..:? "newValue")
+            Core.<*> (o Core..:? "oldValue")
+      )
+
+instance Core.ToJSON OperationManagedZoneContext where
+  toJSON OperationManagedZoneContext {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("newValue" Core..=) Core.<$> newValue',
+            ("oldValue" Core..=) Core.<$> oldValue
+          ]
+      )
+
+--
+-- /See:/ 'newPoliciesListResponse' smart constructor.
+data PoliciesListResponse = PoliciesListResponse
+  { header :: (Core.Maybe ResponseHeader),
+    -- | Type of resource.
+    kind :: Core.Text,
+    -- | The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your page token. This lets you the complete contents of even very large collections one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of all elements returned are an inconsistent view of the collection. You cannot retrieve a consistent snapshot of a collection larger than the maximum page size.
+    nextPageToken :: (Core.Maybe Core.Text),
+    -- | The policy resources.
+    policies :: (Core.Maybe [Policy])
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'PoliciesListResponse' with the minimum fields required to make a request.
+newPoliciesListResponse ::
+  PoliciesListResponse
+newPoliciesListResponse =
+  PoliciesListResponse
+    { header = Core.Nothing,
+      kind = "dns#policiesListResponse",
+      nextPageToken = Core.Nothing,
+      policies = Core.Nothing
+    }
+
+instance Core.FromJSON PoliciesListResponse where
+  parseJSON =
+    Core.withObject
+      "PoliciesListResponse"
+      ( \o ->
+          PoliciesListResponse
+            Core.<$> (o Core..:? "header")
+            Core.<*> (o Core..:? "kind" Core..!= "dns#policiesListResponse")
+            Core.<*> (o Core..:? "nextPageToken")
+            Core.<*> (o Core..:? "policies")
+      )
+
+instance Core.ToJSON PoliciesListResponse where
+  toJSON PoliciesListResponse {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("header" Core..=) Core.<$> header,
+            Core.Just ("kind" Core..= kind),
+            ("nextPageToken" Core..=) Core.<$> nextPageToken,
+            ("policies" Core..=) Core.<$> policies
+          ]
+      )
+
+--
+-- /See:/ 'newPoliciesPatchResponse' smart constructor.
+data PoliciesPatchResponse = PoliciesPatchResponse
+  { header :: (Core.Maybe ResponseHeader),
+    policy :: (Core.Maybe Policy)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'PoliciesPatchResponse' with the minimum fields required to make a request.
+newPoliciesPatchResponse ::
+  PoliciesPatchResponse
+newPoliciesPatchResponse =
+  PoliciesPatchResponse
+    { header = Core.Nothing,
+      policy = Core.Nothing
+    }
+
+instance Core.FromJSON PoliciesPatchResponse where
+  parseJSON =
+    Core.withObject
+      "PoliciesPatchResponse"
+      ( \o ->
+          PoliciesPatchResponse
+            Core.<$> (o Core..:? "header")
+            Core.<*> (o Core..:? "policy")
+      )
+
+instance Core.ToJSON PoliciesPatchResponse where
+  toJSON PoliciesPatchResponse {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("header" Core..=) Core.<$> header,
+            ("policy" Core..=) Core.<$> policy
+          ]
+      )
+
+--
+-- /See:/ 'newPoliciesUpdateResponse' smart constructor.
+data PoliciesUpdateResponse = PoliciesUpdateResponse
+  { header :: (Core.Maybe ResponseHeader),
+    policy :: (Core.Maybe Policy)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'PoliciesUpdateResponse' with the minimum fields required to make a request.
+newPoliciesUpdateResponse ::
+  PoliciesUpdateResponse
+newPoliciesUpdateResponse =
+  PoliciesUpdateResponse
+    { header = Core.Nothing,
+      policy = Core.Nothing
+    }
+
+instance Core.FromJSON PoliciesUpdateResponse where
+  parseJSON =
+    Core.withObject
+      "PoliciesUpdateResponse"
+      ( \o ->
+          PoliciesUpdateResponse
+            Core.<$> (o Core..:? "header")
+            Core.<*> (o Core..:? "policy")
+      )
+
+instance Core.ToJSON PoliciesUpdateResponse where
+  toJSON PoliciesUpdateResponse {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("header" Core..=) Core.<$> header,
+            ("policy" Core..=) Core.<$> policy
+          ]
+      )
+
+-- | A policy is a collection of DNS rules applied to one or more Virtual Private Cloud resources.
+--
+-- /See:/ 'newPolicy' smart constructor.
+data Policy = Policy
+  { -- | Sets an alternative name server for the associated networks. When specified, all DNS queries are forwarded to a name server that you choose. Names such as .internal are not available when an alternative name server is specified.
+    alternativeNameServerConfig :: (Core.Maybe PolicyAlternativeNameServerConfig),
+    -- | A mutable string of at most 1024 characters associated with this resource for the user\'s convenience. Has no effect on the policy\'s function.
+    description :: (Core.Maybe Core.Text),
+    -- | Allows networks bound to this policy to receive DNS queries sent by VMs or applications over VPN connections. When enabled, a virtual IP address is allocated from each of the subnetworks that are bound to this policy.
+    enableInboundForwarding :: (Core.Maybe Core.Bool),
+    -- | Controls whether logging is enabled for the networks bound to this policy. Defaults to no logging if not set.
+    enableLogging :: (Core.Maybe Core.Bool),
+    -- | Unique identifier for the resource; defined by the server (output only).
+    id :: (Core.Maybe Core.Word64),
+    kind :: Core.Text,
+    -- | User-assigned name for this policy.
+    name :: (Core.Maybe Core.Text),
+    -- | List of network names specifying networks to which this policy is applied.
+    networks :: (Core.Maybe [PolicyNetwork])
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Policy' with the minimum fields required to make a request.
+newPolicy ::
+  Policy
+newPolicy =
+  Policy
+    { alternativeNameServerConfig = Core.Nothing,
+      description = Core.Nothing,
+      enableInboundForwarding = Core.Nothing,
+      enableLogging = Core.Nothing,
+      id = Core.Nothing,
+      kind = "dns#policy",
+      name = Core.Nothing,
+      networks = Core.Nothing
+    }
+
+instance Core.FromJSON Policy where
+  parseJSON =
+    Core.withObject
+      "Policy"
+      ( \o ->
+          Policy
+            Core.<$> (o Core..:? "alternativeNameServerConfig")
+            Core.<*> (o Core..:? "description")
+            Core.<*> (o Core..:? "enableInboundForwarding")
+            Core.<*> (o Core..:? "enableLogging")
+            Core.<*> (o Core..:? "id" Core.<&> Core.fmap Core.fromAsText)
+            Core.<*> (o Core..:? "kind" Core..!= "dns#policy")
+            Core.<*> (o Core..:? "name")
+            Core.<*> (o Core..:? "networks")
+      )
+
+instance Core.ToJSON Policy where
+  toJSON Policy {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("alternativeNameServerConfig" Core..=)
+              Core.<$> alternativeNameServerConfig,
+            ("description" Core..=) Core.<$> description,
+            ("enableInboundForwarding" Core..=)
+              Core.<$> enableInboundForwarding,
+            ("enableLogging" Core..=) Core.<$> enableLogging,
+            ("id" Core..=) Core.. Core.AsText Core.<$> id,
+            Core.Just ("kind" Core..= kind),
+            ("name" Core..=) Core.<$> name,
+            ("networks" Core..=) Core.<$> networks
+          ]
+      )
+
+--
+-- /See:/ 'newPolicyAlternativeNameServerConfig' smart constructor.
+data PolicyAlternativeNameServerConfig = PolicyAlternativeNameServerConfig
+  { kind :: Core.Text,
+    -- | Sets an alternative name server for the associated networks. When specified, all DNS queries are forwarded to a name server that you choose. Names such as .internal are not available when an alternative name server is specified.
+    targetNameServers :: (Core.Maybe [PolicyAlternativeNameServerConfigTargetNameServer])
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'PolicyAlternativeNameServerConfig' with the minimum fields required to make a request.
+newPolicyAlternativeNameServerConfig ::
+  PolicyAlternativeNameServerConfig
+newPolicyAlternativeNameServerConfig =
+  PolicyAlternativeNameServerConfig
+    { kind =
+        "dns#policyAlternativeNameServerConfig",
+      targetNameServers = Core.Nothing
+    }
+
+instance Core.FromJSON PolicyAlternativeNameServerConfig where
+  parseJSON =
+    Core.withObject
+      "PolicyAlternativeNameServerConfig"
+      ( \o ->
+          PolicyAlternativeNameServerConfig
+            Core.<$> ( o
+                         Core..:? "kind"
+                         Core..!= "dns#policyAlternativeNameServerConfig"
+                     )
+            Core.<*> (o Core..:? "targetNameServers")
+      )
+
+instance Core.ToJSON PolicyAlternativeNameServerConfig where
+  toJSON PolicyAlternativeNameServerConfig {..} =
+    Core.object
+      ( Core.catMaybes
+          [ Core.Just ("kind" Core..= kind),
+            ("targetNameServers" Core..=) Core.<$> targetNameServers
+          ]
+      )
+
+--
+-- /See:/ 'newPolicyAlternativeNameServerConfigTargetNameServer' smart constructor.
+data PolicyAlternativeNameServerConfigTargetNameServer = PolicyAlternativeNameServerConfigTargetNameServer
+  { -- | Forwarding path for this TargetNameServer. If unset or set to DEFAULT, Cloud DNS makes forwarding decisions based on address ranges; that is, RFC1918 addresses go to the VPC network, non-RFC1918 addresses go to the internet. When set to PRIVATE, Cloud DNS always sends queries through the VPC network for this target.
+    forwardingPath ::
+      ( Core.Maybe
+          PolicyAlternativeNameServerConfigTargetNameServer_ForwardingPath
+      ),
+    -- | IPv4 address to forward to.
+    ipv4Address :: (Core.Maybe Core.Text),
+    kind :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'PolicyAlternativeNameServerConfigTargetNameServer' with the minimum fields required to make a request.
+newPolicyAlternativeNameServerConfigTargetNameServer ::
+  PolicyAlternativeNameServerConfigTargetNameServer
+newPolicyAlternativeNameServerConfigTargetNameServer =
+  PolicyAlternativeNameServerConfigTargetNameServer
+    { forwardingPath =
+        Core.Nothing,
+      ipv4Address = Core.Nothing,
+      kind =
+        "dns#policyAlternativeNameServerConfigTargetNameServer"
+    }
+
+instance
+  Core.FromJSON
+    PolicyAlternativeNameServerConfigTargetNameServer
+  where
+  parseJSON =
+    Core.withObject
+      "PolicyAlternativeNameServerConfigTargetNameServer"
+      ( \o ->
+          PolicyAlternativeNameServerConfigTargetNameServer
+            Core.<$> (o Core..:? "forwardingPath")
+            Core.<*> (o Core..:? "ipv4Address")
+            Core.<*> ( o
+                         Core..:? "kind"
+                         Core..!= "dns#policyAlternativeNameServerConfigTargetNameServer"
+                     )
+      )
+
+instance
+  Core.ToJSON
+    PolicyAlternativeNameServerConfigTargetNameServer
+  where
+  toJSON PolicyAlternativeNameServerConfigTargetNameServer {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("forwardingPath" Core..=) Core.<$> forwardingPath,
+            ("ipv4Address" Core..=) Core.<$> ipv4Address,
+            Core.Just ("kind" Core..= kind)
+          ]
+      )
+
+--
+-- /See:/ 'newPolicyNetwork' smart constructor.
+data PolicyNetwork = PolicyNetwork
+  { kind :: Core.Text,
+    -- | The fully qualified URL of the VPC network to bind to. This should be formatted like https:\/\/www.googleapis.com\/compute\/v1\/projects\/{project}\/global\/networks\/{network}
+    networkUrl :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'PolicyNetwork' with the minimum fields required to make a request.
+newPolicyNetwork ::
+  PolicyNetwork
+newPolicyNetwork =
+  PolicyNetwork
+    { kind = "dns#policyNetwork",
+      networkUrl = Core.Nothing
+    }
+
+instance Core.FromJSON PolicyNetwork where
+  parseJSON =
+    Core.withObject
+      "PolicyNetwork"
+      ( \o ->
+          PolicyNetwork
+            Core.<$> (o Core..:? "kind" Core..!= "dns#policyNetwork")
+            Core.<*> (o Core..:? "networkUrl")
+      )
+
+instance Core.ToJSON PolicyNetwork where
+  toJSON PolicyNetwork {..} =
+    Core.object
+      ( Core.catMaybes
+          [ Core.Just ("kind" Core..= kind),
+            ("networkUrl" Core..=) Core.<$> networkUrl
+          ]
+      )
+
+-- | A project resource. The project is a top level container for resources including Cloud DNS ManagedZones. Projects can be created only in the APIs console. Next tag: 7.
+--
+-- /See:/ 'newProject' smart constructor.
+data Project = Project
+  { -- | User assigned unique identifier for the resource (output only).
+    id :: (Core.Maybe Core.Text),
+    kind :: Core.Text,
+    -- | Unique numeric identifier for the resource; defined by the server (output only).
+    number :: (Core.Maybe Core.Word64),
+    -- | Quotas assigned to this project (output only).
+    quota :: (Core.Maybe Quota)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Project' with the minimum fields required to make a request.
+newProject ::
+  Project
+newProject =
+  Project
+    { id = Core.Nothing,
+      kind = "dns#project",
+      number = Core.Nothing,
+      quota = Core.Nothing
+    }
+
+instance Core.FromJSON Project where
+  parseJSON =
+    Core.withObject
+      "Project"
+      ( \o ->
+          Project
+            Core.<$> (o Core..:? "id")
+            Core.<*> (o Core..:? "kind" Core..!= "dns#project")
+            Core.<*> (o Core..:? "number" Core.<&> Core.fmap Core.fromAsText)
+            Core.<*> (o Core..:? "quota")
+      )
+
+instance Core.ToJSON Project where
+  toJSON Project {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("id" Core..=) Core.<$> id,
+            Core.Just ("kind" Core..= kind),
+            ("number" Core..=) Core.. Core.AsText Core.<$> number,
+            ("quota" Core..=) Core.<$> quota
+          ]
+      )
+
+-- | Limits associated with a Project.
+--
+-- /See:/ 'newQuota' smart constructor.
+data Quota = Quota
+  { -- | Maximum allowed number of DnsKeys per ManagedZone.
+    dnsKeysPerManagedZone :: (Core.Maybe Core.Int32),
+    -- | Maximum allowed number of items per routing policy.
+    itemsPerRoutingPolicy :: (Core.Maybe Core.Int32),
+    kind :: Core.Text,
+    -- | Maximum allowed number of managed zones in the project.
+    managedZones :: (Core.Maybe Core.Int32),
+    -- | Maximum allowed number of managed zones which can be attached to a network.
+    managedZonesPerNetwork :: (Core.Maybe Core.Int32),
+    -- | Maximum allowed number of networks to which a privately scoped zone can be attached.
+    networksPerManagedZone :: (Core.Maybe Core.Int32),
+    -- | Maximum allowed number of networks per policy.
+    networksPerPolicy :: (Core.Maybe Core.Int32),
+    -- | Maximum allowed number of consumer peering zones per target network owned by this producer project
+    peeringZonesPerTargetNetwork :: (Core.Maybe Core.Int32),
+    -- | Maximum allowed number of policies per project.
+    policies :: (Core.Maybe Core.Int32),
+    -- | Maximum allowed number of ResourceRecords per ResourceRecordSet.
+    resourceRecordsPerRrset :: (Core.Maybe Core.Int32),
+    -- | Maximum allowed number of ResourceRecordSets to add per ChangesCreateRequest.
+    rrsetAdditionsPerChange :: (Core.Maybe Core.Int32),
+    -- | Maximum allowed number of ResourceRecordSets to delete per ChangesCreateRequest.
+    rrsetDeletionsPerChange :: (Core.Maybe Core.Int32),
+    -- | Maximum allowed number of ResourceRecordSets per zone in the project.
+    rrsetsPerManagedZone :: (Core.Maybe Core.Int32),
+    -- | Maximum allowed number of target name servers per managed forwarding zone.
+    targetNameServersPerManagedZone :: (Core.Maybe Core.Int32),
+    -- | Maximum allowed number of alternative target name servers per policy.
+    targetNameServersPerPolicy :: (Core.Maybe Core.Int32),
+    -- | Maximum allowed size for total rrdata in one ChangesCreateRequest in bytes.
+    totalRrdataSizePerChange :: (Core.Maybe Core.Int32),
+    -- | DNSSEC algorithm and key length types that can be used for DnsKeys.
+    whitelistedKeySpecs :: (Core.Maybe [DnsKeySpec])
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Quota' with the minimum fields required to make a request.
+newQuota ::
+  Quota
+newQuota =
+  Quota
+    { dnsKeysPerManagedZone = Core.Nothing,
+      itemsPerRoutingPolicy = Core.Nothing,
+      kind = "dns#quota",
+      managedZones = Core.Nothing,
+      managedZonesPerNetwork = Core.Nothing,
+      networksPerManagedZone = Core.Nothing,
+      networksPerPolicy = Core.Nothing,
+      peeringZonesPerTargetNetwork = Core.Nothing,
+      policies = Core.Nothing,
+      resourceRecordsPerRrset = Core.Nothing,
+      rrsetAdditionsPerChange = Core.Nothing,
+      rrsetDeletionsPerChange = Core.Nothing,
+      rrsetsPerManagedZone = Core.Nothing,
+      targetNameServersPerManagedZone = Core.Nothing,
+      targetNameServersPerPolicy = Core.Nothing,
+      totalRrdataSizePerChange = Core.Nothing,
+      whitelistedKeySpecs = Core.Nothing
+    }
+
+instance Core.FromJSON Quota where
+  parseJSON =
+    Core.withObject
+      "Quota"
+      ( \o ->
+          Quota
+            Core.<$> (o Core..:? "dnsKeysPerManagedZone")
+            Core.<*> (o Core..:? "itemsPerRoutingPolicy")
+            Core.<*> (o Core..:? "kind" Core..!= "dns#quota")
+            Core.<*> (o Core..:? "managedZones")
+            Core.<*> (o Core..:? "managedZonesPerNetwork")
+            Core.<*> (o Core..:? "networksPerManagedZone")
+            Core.<*> (o Core..:? "networksPerPolicy")
+            Core.<*> (o Core..:? "peeringZonesPerTargetNetwork")
+            Core.<*> (o Core..:? "policies")
+            Core.<*> (o Core..:? "resourceRecordsPerRrset")
+            Core.<*> (o Core..:? "rrsetAdditionsPerChange")
+            Core.<*> (o Core..:? "rrsetDeletionsPerChange")
+            Core.<*> (o Core..:? "rrsetsPerManagedZone")
+            Core.<*> (o Core..:? "targetNameServersPerManagedZone")
+            Core.<*> (o Core..:? "targetNameServersPerPolicy")
+            Core.<*> (o Core..:? "totalRrdataSizePerChange")
+            Core.<*> (o Core..:? "whitelistedKeySpecs")
+      )
+
+instance Core.ToJSON Quota where
+  toJSON Quota {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("dnsKeysPerManagedZone" Core..=) Core.<$> dnsKeysPerManagedZone,
+            ("itemsPerRoutingPolicy" Core..=) Core.<$> itemsPerRoutingPolicy,
+            Core.Just ("kind" Core..= kind),
+            ("managedZones" Core..=) Core.<$> managedZones,
+            ("managedZonesPerNetwork" Core..=) Core.<$> managedZonesPerNetwork,
+            ("networksPerManagedZone" Core..=) Core.<$> networksPerManagedZone,
+            ("networksPerPolicy" Core..=) Core.<$> networksPerPolicy,
+            ("peeringZonesPerTargetNetwork" Core..=)
+              Core.<$> peeringZonesPerTargetNetwork,
+            ("policies" Core..=) Core.<$> policies,
+            ("resourceRecordsPerRrset" Core..=)
+              Core.<$> resourceRecordsPerRrset,
+            ("rrsetAdditionsPerChange" Core..=)
+              Core.<$> rrsetAdditionsPerChange,
+            ("rrsetDeletionsPerChange" Core..=)
+              Core.<$> rrsetDeletionsPerChange,
+            ("rrsetsPerManagedZone" Core..=) Core.<$> rrsetsPerManagedZone,
+            ("targetNameServersPerManagedZone" Core..=)
+              Core.<$> targetNameServersPerManagedZone,
+            ("targetNameServersPerPolicy" Core..=)
+              Core.<$> targetNameServersPerPolicy,
+            ("totalRrdataSizePerChange" Core..=)
+              Core.<$> totalRrdataSizePerChange,
+            ("whitelistedKeySpecs" Core..=) Core.<$> whitelistedKeySpecs
+          ]
+      )
+
+-- | A RRSetRoutingPolicy represents ResourceRecordSet data that is returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection.
+--
+-- /See:/ 'newRRSetRoutingPolicy' smart constructor.
+data RRSetRoutingPolicy = RRSetRoutingPolicy
+  { geo :: (Core.Maybe RRSetRoutingPolicyGeoPolicy),
+    kind :: Core.Text,
+    wrr :: (Core.Maybe RRSetRoutingPolicyWrrPolicy)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'RRSetRoutingPolicy' with the minimum fields required to make a request.
+newRRSetRoutingPolicy ::
+  RRSetRoutingPolicy
+newRRSetRoutingPolicy =
+  RRSetRoutingPolicy
+    { geo = Core.Nothing,
+      kind = "dns#rRSetRoutingPolicy",
+      wrr = Core.Nothing
+    }
+
+instance Core.FromJSON RRSetRoutingPolicy where
+  parseJSON =
+    Core.withObject
+      "RRSetRoutingPolicy"
+      ( \o ->
+          RRSetRoutingPolicy
+            Core.<$> (o Core..:? "geo")
+            Core.<*> (o Core..:? "kind" Core..!= "dns#rRSetRoutingPolicy")
+            Core.<*> (o Core..:? "wrr")
+      )
+
+instance Core.ToJSON RRSetRoutingPolicy where
+  toJSON RRSetRoutingPolicy {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("geo" Core..=) Core.<$> geo,
+            Core.Just ("kind" Core..= kind),
+            ("wrr" Core..=) Core.<$> wrr
+          ]
+      )
+
+-- | Configures a RRSetRoutingPolicy that routes based on the geo location of the querying user.
+--
+-- /See:/ 'newRRSetRoutingPolicyGeoPolicy' smart constructor.
+data RRSetRoutingPolicyGeoPolicy = RRSetRoutingPolicyGeoPolicy
+  { -- | The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead.
+    items :: (Core.Maybe [RRSetRoutingPolicyGeoPolicyGeoPolicyItem]),
+    kind :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'RRSetRoutingPolicyGeoPolicy' with the minimum fields required to make a request.
+newRRSetRoutingPolicyGeoPolicy ::
+  RRSetRoutingPolicyGeoPolicy
+newRRSetRoutingPolicyGeoPolicy =
+  RRSetRoutingPolicyGeoPolicy
+    { items = Core.Nothing,
+      kind = "dns#rRSetRoutingPolicyGeoPolicy"
+    }
+
+instance Core.FromJSON RRSetRoutingPolicyGeoPolicy where
+  parseJSON =
+    Core.withObject
+      "RRSetRoutingPolicyGeoPolicy"
+      ( \o ->
+          RRSetRoutingPolicyGeoPolicy
+            Core.<$> (o Core..:? "items")
+            Core.<*> (o Core..:? "kind" Core..!= "dns#rRSetRoutingPolicyGeoPolicy")
+      )
+
+instance Core.ToJSON RRSetRoutingPolicyGeoPolicy where
+  toJSON RRSetRoutingPolicyGeoPolicy {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("items" Core..=) Core.<$> items,
+            Core.Just ("kind" Core..= kind)
+          ]
+      )
+
+-- | ResourceRecordSet data for one geo location.
+--
+-- /See:/ 'newRRSetRoutingPolicyGeoPolicyGeoPolicyItem' smart constructor.
+data RRSetRoutingPolicyGeoPolicyGeoPolicyItem = RRSetRoutingPolicyGeoPolicyGeoPolicyItem
+  { kind :: Core.Text,
+    -- | The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g. \"us-east1\", \"southamerica-east1\", \"asia-east1\", etc.
+    location :: (Core.Maybe Core.Text),
+    rrdatas :: (Core.Maybe [Core.Text]),
+    -- | DNSSEC generated signatures for all the rrdata within this item. Note that if health checked targets are provided for DNSSEC enabled zones, there\'s a restriction of 1 ip per item. .
+    signatureRrdatas :: (Core.Maybe [Core.Text])
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'RRSetRoutingPolicyGeoPolicyGeoPolicyItem' with the minimum fields required to make a request.
+newRRSetRoutingPolicyGeoPolicyGeoPolicyItem ::
+  RRSetRoutingPolicyGeoPolicyGeoPolicyItem
+newRRSetRoutingPolicyGeoPolicyGeoPolicyItem =
+  RRSetRoutingPolicyGeoPolicyGeoPolicyItem
+    { kind =
+        "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem",
+      location = Core.Nothing,
+      rrdatas = Core.Nothing,
+      signatureRrdatas = Core.Nothing
+    }
+
+instance Core.FromJSON RRSetRoutingPolicyGeoPolicyGeoPolicyItem where
+  parseJSON =
+    Core.withObject
+      "RRSetRoutingPolicyGeoPolicyGeoPolicyItem"
+      ( \o ->
+          RRSetRoutingPolicyGeoPolicyGeoPolicyItem
+            Core.<$> ( o
+                         Core..:? "kind"
+                         Core..!= "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem"
+                     )
+            Core.<*> (o Core..:? "location")
+            Core.<*> (o Core..:? "rrdatas")
+            Core.<*> (o Core..:? "signatureRrdatas")
+      )
+
+instance Core.ToJSON RRSetRoutingPolicyGeoPolicyGeoPolicyItem where
+  toJSON RRSetRoutingPolicyGeoPolicyGeoPolicyItem {..} =
+    Core.object
+      ( Core.catMaybes
+          [ Core.Just ("kind" Core..= kind),
+            ("location" Core..=) Core.<$> location,
+            ("rrdatas" Core..=) Core.<$> rrdatas,
+            ("signatureRrdatas" Core..=) Core.<$> signatureRrdatas
+          ]
+      )
+
+-- | Configures a RRSetRoutingPolicy that routes in a weighted round robin fashion.
+--
+-- /See:/ 'newRRSetRoutingPolicyWrrPolicy' smart constructor.
+data RRSetRoutingPolicyWrrPolicy = RRSetRoutingPolicyWrrPolicy
+  { items :: (Core.Maybe [RRSetRoutingPolicyWrrPolicyWrrPolicyItem]),
+    kind :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'RRSetRoutingPolicyWrrPolicy' with the minimum fields required to make a request.
+newRRSetRoutingPolicyWrrPolicy ::
+  RRSetRoutingPolicyWrrPolicy
+newRRSetRoutingPolicyWrrPolicy =
+  RRSetRoutingPolicyWrrPolicy
+    { items = Core.Nothing,
+      kind = "dns#rRSetRoutingPolicyWrrPolicy"
+    }
+
+instance Core.FromJSON RRSetRoutingPolicyWrrPolicy where
+  parseJSON =
+    Core.withObject
+      "RRSetRoutingPolicyWrrPolicy"
+      ( \o ->
+          RRSetRoutingPolicyWrrPolicy
+            Core.<$> (o Core..:? "items")
+            Core.<*> (o Core..:? "kind" Core..!= "dns#rRSetRoutingPolicyWrrPolicy")
+      )
+
+instance Core.ToJSON RRSetRoutingPolicyWrrPolicy where
+  toJSON RRSetRoutingPolicyWrrPolicy {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("items" Core..=) Core.<$> items,
+            Core.Just ("kind" Core..= kind)
+          ]
+      )
+
+-- | A routing block which contains the routing information for one WRR item.
+--
+-- /See:/ 'newRRSetRoutingPolicyWrrPolicyWrrPolicyItem' smart constructor.
+data RRSetRoutingPolicyWrrPolicyWrrPolicyItem = RRSetRoutingPolicyWrrPolicyWrrPolicyItem
+  { kind :: Core.Text,
+    rrdatas :: (Core.Maybe [Core.Text]),
+    -- | DNSSEC generated signatures for all the rrdata within this item. Note that if health checked targets are provided for DNSSEC enabled zones, there\'s a restriction of 1 ip per item. .
+    signatureRrdatas :: (Core.Maybe [Core.Text]),
+    -- | The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be non-negative.
+    weight :: (Core.Maybe Core.Double)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'RRSetRoutingPolicyWrrPolicyWrrPolicyItem' with the minimum fields required to make a request.
+newRRSetRoutingPolicyWrrPolicyWrrPolicyItem ::
+  RRSetRoutingPolicyWrrPolicyWrrPolicyItem
+newRRSetRoutingPolicyWrrPolicyWrrPolicyItem =
+  RRSetRoutingPolicyWrrPolicyWrrPolicyItem
+    { kind =
+        "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem",
+      rrdatas = Core.Nothing,
+      signatureRrdatas = Core.Nothing,
+      weight = Core.Nothing
+    }
+
+instance Core.FromJSON RRSetRoutingPolicyWrrPolicyWrrPolicyItem where
+  parseJSON =
+    Core.withObject
+      "RRSetRoutingPolicyWrrPolicyWrrPolicyItem"
+      ( \o ->
+          RRSetRoutingPolicyWrrPolicyWrrPolicyItem
+            Core.<$> ( o
+                         Core..:? "kind"
+                         Core..!= "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem"
+                     )
+            Core.<*> (o Core..:? "rrdatas")
+            Core.<*> (o Core..:? "signatureRrdatas")
+            Core.<*> (o Core..:? "weight")
+      )
+
+instance Core.ToJSON RRSetRoutingPolicyWrrPolicyWrrPolicyItem where
+  toJSON RRSetRoutingPolicyWrrPolicyWrrPolicyItem {..} =
+    Core.object
+      ( Core.catMaybes
+          [ Core.Just ("kind" Core..= kind),
+            ("rrdatas" Core..=) Core.<$> rrdatas,
+            ("signatureRrdatas" Core..=) Core.<$> signatureRrdatas,
+            ("weight" Core..=) Core.<$> weight
+          ]
+      )
+
+-- | A unit of data that is returned by the DNS servers.
+--
+-- /See:/ 'newResourceRecordSet' smart constructor.
+data ResourceRecordSet = ResourceRecordSet
+  { kind :: Core.Text,
+    -- | For example, www.example.com.
+    name :: (Core.Maybe Core.Text),
+    -- | Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy (dynamic). An error is returned otherwise.
+    routingPolicy :: (Core.Maybe RRSetRoutingPolicy),
+    -- | As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples.
+    rrdatas :: (Core.Maybe [Core.Text]),
+    -- | As defined in RFC 4034 (section 3.2).
+    signatureRrdatas :: (Core.Maybe [Core.Text]),
+    -- | Number of seconds that this ResourceRecordSet can be cached by resolvers.
+    ttl :: (Core.Maybe Core.Int32),
+    -- | The identifier of a supported record type. See the list of Supported DNS record types.
+    type' :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ResourceRecordSet' with the minimum fields required to make a request.
+newResourceRecordSet ::
+  ResourceRecordSet
+newResourceRecordSet =
+  ResourceRecordSet
+    { kind = "dns#resourceRecordSet",
+      name = Core.Nothing,
+      routingPolicy = Core.Nothing,
+      rrdatas = Core.Nothing,
+      signatureRrdatas = Core.Nothing,
+      ttl = Core.Nothing,
+      type' = Core.Nothing
+    }
+
+instance Core.FromJSON ResourceRecordSet where
+  parseJSON =
+    Core.withObject
+      "ResourceRecordSet"
+      ( \o ->
+          ResourceRecordSet
+            Core.<$> (o Core..:? "kind" Core..!= "dns#resourceRecordSet")
+            Core.<*> (o Core..:? "name")
+            Core.<*> (o Core..:? "routingPolicy")
+            Core.<*> (o Core..:? "rrdatas")
+            Core.<*> (o Core..:? "signatureRrdatas")
+            Core.<*> (o Core..:? "ttl")
+            Core.<*> (o Core..:? "type")
+      )
+
+instance Core.ToJSON ResourceRecordSet where
+  toJSON ResourceRecordSet {..} =
+    Core.object
+      ( Core.catMaybes
+          [ Core.Just ("kind" Core..= kind),
+            ("name" Core..=) Core.<$> name,
+            ("routingPolicy" Core..=) Core.<$> routingPolicy,
+            ("rrdatas" Core..=) Core.<$> rrdatas,
+            ("signatureRrdatas" Core..=) Core.<$> signatureRrdatas,
+            ("ttl" Core..=) Core.<$> ttl,
+            ("type" Core..=) Core.<$> type'
+          ]
+      )
+
+--
+-- /See:/ 'newResourceRecordSetsListResponse' smart constructor.
+data ResourceRecordSetsListResponse = ResourceRecordSetsListResponse
+  { header :: (Core.Maybe ResponseHeader),
+    -- | Type of resource.
+    kind :: Core.Text,
+    -- | The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your pagination token. This lets you retrieve complete contents of even larger collections, one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of elements returned are an inconsistent view of the collection. You cannot retrieve a consistent snapshot of a collection larger than the maximum page size.
+    nextPageToken :: (Core.Maybe Core.Text),
+    -- | The resource record set resources.
+    rrsets :: (Core.Maybe [ResourceRecordSet])
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ResourceRecordSetsListResponse' with the minimum fields required to make a request.
+newResourceRecordSetsListResponse ::
+  ResourceRecordSetsListResponse
+newResourceRecordSetsListResponse =
+  ResourceRecordSetsListResponse
+    { header = Core.Nothing,
+      kind = "dns#resourceRecordSetsListResponse",
+      nextPageToken = Core.Nothing,
+      rrsets = Core.Nothing
+    }
+
+instance Core.FromJSON ResourceRecordSetsListResponse where
+  parseJSON =
+    Core.withObject
+      "ResourceRecordSetsListResponse"
+      ( \o ->
+          ResourceRecordSetsListResponse
+            Core.<$> (o Core..:? "header")
+            Core.<*> (o Core..:? "kind" Core..!= "dns#resourceRecordSetsListResponse")
+            Core.<*> (o Core..:? "nextPageToken")
+            Core.<*> (o Core..:? "rrsets")
+      )
+
+instance Core.ToJSON ResourceRecordSetsListResponse where
+  toJSON ResourceRecordSetsListResponse {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("header" Core..=) Core.<$> header,
+            Core.Just ("kind" Core..= kind),
+            ("nextPageToken" Core..=) Core.<$> nextPageToken,
+            ("rrsets" Core..=) Core.<$> rrsets
+          ]
+      )
+
+-- | Elements common to every response.
+--
+-- /See:/ 'newResponseHeader' smart constructor.
+newtype ResponseHeader = ResponseHeader
+  { -- | For mutating operation requests that completed successfully. This is the client/operation/id if the client specified it, otherwise it is generated by the server (output only).
+    operationId :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ResponseHeader' with the minimum fields required to make a request.
+newResponseHeader ::
+  ResponseHeader
+newResponseHeader = ResponseHeader {operationId = Core.Nothing}
+
+instance Core.FromJSON ResponseHeader where
+  parseJSON =
+    Core.withObject
+      "ResponseHeader"
+      (\o -> ResponseHeader Core.<$> (o Core..:? "operationId"))
+
+instance Core.ToJSON ResponseHeader where
+  toJSON ResponseHeader {..} =
+    Core.object
+      (Core.catMaybes [("operationId" Core..=) Core.<$> operationId])
+
+--
+-- /See:/ 'newResponsePoliciesListResponse' smart constructor.
+data ResponsePoliciesListResponse = ResponsePoliciesListResponse
+  { header :: (Core.Maybe ResponseHeader),
+    -- | The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your page token. This lets you the complete contents of even very large collections one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of all elements returned are an inconsistent view of the collection. You cannot retrieve a consistent snapshot of a collection larger than the maximum page size.
+    nextPageToken :: (Core.Maybe Core.Text),
+    -- | The Response Policy resources.
+    responsePolicies :: (Core.Maybe [ResponsePolicy])
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ResponsePoliciesListResponse' with the minimum fields required to make a request.
+newResponsePoliciesListResponse ::
+  ResponsePoliciesListResponse
+newResponsePoliciesListResponse =
+  ResponsePoliciesListResponse
+    { header = Core.Nothing,
+      nextPageToken = Core.Nothing,
+      responsePolicies = Core.Nothing
+    }
+
+instance Core.FromJSON ResponsePoliciesListResponse where
+  parseJSON =
+    Core.withObject
+      "ResponsePoliciesListResponse"
+      ( \o ->
+          ResponsePoliciesListResponse
+            Core.<$> (o Core..:? "header")
+            Core.<*> (o Core..:? "nextPageToken")
+            Core.<*> (o Core..:? "responsePolicies")
+      )
+
+instance Core.ToJSON ResponsePoliciesListResponse where
+  toJSON ResponsePoliciesListResponse {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("header" Core..=) Core.<$> header,
+            ("nextPageToken" Core..=) Core.<$> nextPageToken,
+            ("responsePolicies" Core..=) Core.<$> responsePolicies
+          ]
+      )
+
+--
+-- /See:/ 'newResponsePoliciesPatchResponse' smart constructor.
+data ResponsePoliciesPatchResponse = ResponsePoliciesPatchResponse
+  { header :: (Core.Maybe ResponseHeader),
+    responsePolicy :: (Core.Maybe ResponsePolicy)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ResponsePoliciesPatchResponse' with the minimum fields required to make a request.
+newResponsePoliciesPatchResponse ::
+  ResponsePoliciesPatchResponse
+newResponsePoliciesPatchResponse =
+  ResponsePoliciesPatchResponse
+    { header = Core.Nothing,
+      responsePolicy = Core.Nothing
+    }
+
+instance Core.FromJSON ResponsePoliciesPatchResponse where
+  parseJSON =
+    Core.withObject
+      "ResponsePoliciesPatchResponse"
+      ( \o ->
+          ResponsePoliciesPatchResponse
+            Core.<$> (o Core..:? "header")
+            Core.<*> (o Core..:? "responsePolicy")
+      )
+
+instance Core.ToJSON ResponsePoliciesPatchResponse where
+  toJSON ResponsePoliciesPatchResponse {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("header" Core..=) Core.<$> header,
+            ("responsePolicy" Core..=) Core.<$> responsePolicy
+          ]
+      )
+
+--
+-- /See:/ 'newResponsePoliciesUpdateResponse' smart constructor.
+data ResponsePoliciesUpdateResponse = ResponsePoliciesUpdateResponse
+  { header :: (Core.Maybe ResponseHeader),
+    responsePolicy :: (Core.Maybe ResponsePolicy)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ResponsePoliciesUpdateResponse' with the minimum fields required to make a request.
+newResponsePoliciesUpdateResponse ::
+  ResponsePoliciesUpdateResponse
+newResponsePoliciesUpdateResponse =
+  ResponsePoliciesUpdateResponse
+    { header = Core.Nothing,
+      responsePolicy = Core.Nothing
+    }
+
+instance Core.FromJSON ResponsePoliciesUpdateResponse where
+  parseJSON =
+    Core.withObject
+      "ResponsePoliciesUpdateResponse"
+      ( \o ->
+          ResponsePoliciesUpdateResponse
+            Core.<$> (o Core..:? "header")
+            Core.<*> (o Core..:? "responsePolicy")
+      )
+
+instance Core.ToJSON ResponsePoliciesUpdateResponse where
+  toJSON ResponsePoliciesUpdateResponse {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("header" Core..=) Core.<$> header,
+            ("responsePolicy" Core..=) Core.<$> responsePolicy
+          ]
+      )
+
+-- | A Response Policy is a collection of selectors that apply to queries made against one or more Virtual Private Cloud networks.
+--
+-- /See:/ 'newResponsePolicy' smart constructor.
+data ResponsePolicy = ResponsePolicy
+  { -- | User-provided description for this Response Policy.
+    description :: (Core.Maybe Core.Text),
+    -- | The list of Google Kubernetes Engine clusters to which this response policy is applied.
+    gkeClusters :: (Core.Maybe [ResponsePolicyGKECluster]),
+    -- | Unique identifier for the resource; defined by the server (output only).
+    id :: (Core.Maybe Core.Int64),
+    kind :: Core.Text,
+    -- | List of network names specifying networks to which this policy is applied.
+    networks :: (Core.Maybe [ResponsePolicyNetwork]),
+    -- | User assigned name for this Response Policy.
+    responsePolicyName :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ResponsePolicy' with the minimum fields required to make a request.
+newResponsePolicy ::
+  ResponsePolicy
+newResponsePolicy =
+  ResponsePolicy
+    { description = Core.Nothing,
+      gkeClusters = Core.Nothing,
+      id = Core.Nothing,
+      kind = "dns#responsePolicy",
+      networks = Core.Nothing,
+      responsePolicyName = Core.Nothing
+    }
+
+instance Core.FromJSON ResponsePolicy where
+  parseJSON =
+    Core.withObject
+      "ResponsePolicy"
+      ( \o ->
+          ResponsePolicy
+            Core.<$> (o Core..:? "description")
+            Core.<*> (o Core..:? "gkeClusters")
+            Core.<*> (o Core..:? "id" Core.<&> Core.fmap Core.fromAsText)
+            Core.<*> (o Core..:? "kind" Core..!= "dns#responsePolicy")
+            Core.<*> (o Core..:? "networks")
+            Core.<*> (o Core..:? "responsePolicyName")
+      )
+
+instance Core.ToJSON ResponsePolicy where
+  toJSON ResponsePolicy {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("description" Core..=) Core.<$> description,
+            ("gkeClusters" Core..=) Core.<$> gkeClusters,
+            ("id" Core..=) Core.. Core.AsText Core.<$> id,
+            Core.Just ("kind" Core..= kind),
+            ("networks" Core..=) Core.<$> networks,
+            ("responsePolicyName" Core..=) Core.<$> responsePolicyName
+          ]
+      )
+
+--
+-- /See:/ 'newResponsePolicyGKECluster' smart constructor.
+data ResponsePolicyGKECluster = ResponsePolicyGKECluster
+  { -- | The resource name of the cluster to bind this response policy to. This should be specified in the format like: projects\//\/locations\//\/clusters\/*. This is referenced from GKE projects.locations.clusters.get API: https:\/\/cloud.google.com\/kubernetes-engine\/docs\/reference\/rest\/v1\/projects.locations.clusters\/get
+    gkeClusterName :: (Core.Maybe Core.Text),
+    kind :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ResponsePolicyGKECluster' with the minimum fields required to make a request.
+newResponsePolicyGKECluster ::
+  ResponsePolicyGKECluster
+newResponsePolicyGKECluster =
+  ResponsePolicyGKECluster
+    { gkeClusterName = Core.Nothing,
+      kind = "dns#responsePolicyGKECluster"
+    }
+
+instance Core.FromJSON ResponsePolicyGKECluster where
+  parseJSON =
+    Core.withObject
+      "ResponsePolicyGKECluster"
+      ( \o ->
+          ResponsePolicyGKECluster
+            Core.<$> (o Core..:? "gkeClusterName")
+            Core.<*> (o Core..:? "kind" Core..!= "dns#responsePolicyGKECluster")
+      )
+
+instance Core.ToJSON ResponsePolicyGKECluster where
+  toJSON ResponsePolicyGKECluster {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("gkeClusterName" Core..=) Core.<$> gkeClusterName,
+            Core.Just ("kind" Core..= kind)
+          ]
+      )
+
+--
+-- /See:/ 'newResponsePolicyNetwork' smart constructor.
+data ResponsePolicyNetwork = ResponsePolicyNetwork
+  { kind :: Core.Text,
+    -- | The fully qualified URL of the VPC network to bind to. This should be formatted like https:\/\/www.googleapis.com\/compute\/v1\/projects\/{project}\/global\/networks\/{network}
+    networkUrl :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ResponsePolicyNetwork' with the minimum fields required to make a request.
+newResponsePolicyNetwork ::
+  ResponsePolicyNetwork
+newResponsePolicyNetwork =
+  ResponsePolicyNetwork
+    { kind = "dns#responsePolicyNetwork",
+      networkUrl = Core.Nothing
+    }
+
+instance Core.FromJSON ResponsePolicyNetwork where
+  parseJSON =
+    Core.withObject
+      "ResponsePolicyNetwork"
+      ( \o ->
+          ResponsePolicyNetwork
+            Core.<$> (o Core..:? "kind" Core..!= "dns#responsePolicyNetwork")
+            Core.<*> (o Core..:? "networkUrl")
+      )
+
+instance Core.ToJSON ResponsePolicyNetwork where
+  toJSON ResponsePolicyNetwork {..} =
+    Core.object
+      ( Core.catMaybes
+          [ Core.Just ("kind" Core..= kind),
+            ("networkUrl" Core..=) Core.<$> networkUrl
+          ]
+      )
+
+-- | A Response Policy Rule is a selector that applies its behavior to queries that match the selector. Selectors are DNS names, which may be wildcards or exact matches. Each DNS query subject to a Response Policy matches at most one ResponsePolicyRule, as identified by the dns_name field with the longest matching suffix.
+--
+-- /See:/ 'newResponsePolicyRule' smart constructor.
+data ResponsePolicyRule = ResponsePolicyRule
+  { -- | Answer this query with a behavior rather than DNS data.
+    behavior :: (Core.Maybe ResponsePolicyRule_Behavior),
+    -- | The DNS name (wildcard or exact) to apply this rule to. Must be unique within the Response Policy Rule.
+    dnsName :: (Core.Maybe Core.Text),
+    kind :: Core.Text,
+    -- | Answer this query directly with DNS data. These ResourceRecordSets override any other DNS behavior for the matched name; in particular they override private zones, the public internet, and GCP internal DNS. No SOA nor NS types are allowed.
+    localData :: (Core.Maybe ResponsePolicyRuleLocalData),
+    -- | An identifier for this rule. Must be unique with the ResponsePolicy.
+    ruleName :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ResponsePolicyRule' with the minimum fields required to make a request.
+newResponsePolicyRule ::
+  ResponsePolicyRule
+newResponsePolicyRule =
+  ResponsePolicyRule
+    { behavior = Core.Nothing,
+      dnsName = Core.Nothing,
+      kind = "dns#responsePolicyRule",
+      localData = Core.Nothing,
+      ruleName = Core.Nothing
+    }
+
+instance Core.FromJSON ResponsePolicyRule where
+  parseJSON =
+    Core.withObject
+      "ResponsePolicyRule"
+      ( \o ->
+          ResponsePolicyRule
+            Core.<$> (o Core..:? "behavior")
+            Core.<*> (o Core..:? "dnsName")
+            Core.<*> (o Core..:? "kind" Core..!= "dns#responsePolicyRule")
+            Core.<*> (o Core..:? "localData")
+            Core.<*> (o Core..:? "ruleName")
+      )
+
+instance Core.ToJSON ResponsePolicyRule where
+  toJSON ResponsePolicyRule {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("behavior" Core..=) Core.<$> behavior,
+            ("dnsName" Core..=) Core.<$> dnsName,
+            Core.Just ("kind" Core..= kind),
+            ("localData" Core..=) Core.<$> localData,
+            ("ruleName" Core..=) Core.<$> ruleName
+          ]
+      )
+
+--
+-- /See:/ 'newResponsePolicyRuleLocalData' smart constructor.
+newtype ResponsePolicyRuleLocalData = ResponsePolicyRuleLocalData
+  { -- | All resource record sets for this selector, one per resource record type. The name must match the dns_name.
+    localDatas :: (Core.Maybe [ResourceRecordSet])
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ResponsePolicyRuleLocalData' with the minimum fields required to make a request.
+newResponsePolicyRuleLocalData ::
+  ResponsePolicyRuleLocalData
+newResponsePolicyRuleLocalData =
+  ResponsePolicyRuleLocalData {localDatas = Core.Nothing}
+
+instance Core.FromJSON ResponsePolicyRuleLocalData where
+  parseJSON =
+    Core.withObject
+      "ResponsePolicyRuleLocalData"
+      ( \o ->
+          ResponsePolicyRuleLocalData Core.<$> (o Core..:? "localDatas")
+      )
+
+instance Core.ToJSON ResponsePolicyRuleLocalData where
+  toJSON ResponsePolicyRuleLocalData {..} =
+    Core.object
+      (Core.catMaybes [("localDatas" Core..=) Core.<$> localDatas])
+
+--
+-- /See:/ 'newResponsePolicyRulesListResponse' smart constructor.
+data ResponsePolicyRulesListResponse = ResponsePolicyRulesListResponse
+  { header :: (Core.Maybe ResponseHeader),
+    -- | The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your page token. This lets you the complete contents of even very large collections one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of all elements returned are an inconsistent view of the collection. You cannot retrieve a consistent snapshot of a collection larger than the maximum page size.
+    nextPageToken :: (Core.Maybe Core.Text),
+    -- | The Response Policy Rule resources.
+    responsePolicyRules :: (Core.Maybe [ResponsePolicyRule])
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ResponsePolicyRulesListResponse' with the minimum fields required to make a request.
+newResponsePolicyRulesListResponse ::
+  ResponsePolicyRulesListResponse
+newResponsePolicyRulesListResponse =
+  ResponsePolicyRulesListResponse
+    { header = Core.Nothing,
+      nextPageToken = Core.Nothing,
+      responsePolicyRules = Core.Nothing
+    }
+
+instance Core.FromJSON ResponsePolicyRulesListResponse where
+  parseJSON =
+    Core.withObject
+      "ResponsePolicyRulesListResponse"
+      ( \o ->
+          ResponsePolicyRulesListResponse
+            Core.<$> (o Core..:? "header")
+            Core.<*> (o Core..:? "nextPageToken")
+            Core.<*> (o Core..:? "responsePolicyRules")
+      )
+
+instance Core.ToJSON ResponsePolicyRulesListResponse where
+  toJSON ResponsePolicyRulesListResponse {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("header" Core..=) Core.<$> header,
+            ("nextPageToken" Core..=) Core.<$> nextPageToken,
+            ("responsePolicyRules" Core..=) Core.<$> responsePolicyRules
+          ]
+      )
+
+--
+-- /See:/ 'newResponsePolicyRulesPatchResponse' smart constructor.
+data ResponsePolicyRulesPatchResponse = ResponsePolicyRulesPatchResponse
+  { header :: (Core.Maybe ResponseHeader),
+    responsePolicyRule :: (Core.Maybe ResponsePolicyRule)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ResponsePolicyRulesPatchResponse' with the minimum fields required to make a request.
+newResponsePolicyRulesPatchResponse ::
+  ResponsePolicyRulesPatchResponse
+newResponsePolicyRulesPatchResponse =
+  ResponsePolicyRulesPatchResponse
+    { header = Core.Nothing,
+      responsePolicyRule = Core.Nothing
+    }
+
+instance Core.FromJSON ResponsePolicyRulesPatchResponse where
+  parseJSON =
+    Core.withObject
+      "ResponsePolicyRulesPatchResponse"
+      ( \o ->
+          ResponsePolicyRulesPatchResponse
+            Core.<$> (o Core..:? "header")
+            Core.<*> (o Core..:? "responsePolicyRule")
+      )
+
+instance Core.ToJSON ResponsePolicyRulesPatchResponse where
+  toJSON ResponsePolicyRulesPatchResponse {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("header" Core..=) Core.<$> header,
+            ("responsePolicyRule" Core..=) Core.<$> responsePolicyRule
+          ]
+      )
+
+--
+-- /See:/ 'newResponsePolicyRulesUpdateResponse' smart constructor.
+data ResponsePolicyRulesUpdateResponse = ResponsePolicyRulesUpdateResponse
+  { header :: (Core.Maybe ResponseHeader),
+    responsePolicyRule :: (Core.Maybe ResponsePolicyRule)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ResponsePolicyRulesUpdateResponse' with the minimum fields required to make a request.
+newResponsePolicyRulesUpdateResponse ::
+  ResponsePolicyRulesUpdateResponse
+newResponsePolicyRulesUpdateResponse =
+  ResponsePolicyRulesUpdateResponse
+    { header = Core.Nothing,
+      responsePolicyRule = Core.Nothing
+    }
+
+instance Core.FromJSON ResponsePolicyRulesUpdateResponse where
+  parseJSON =
+    Core.withObject
+      "ResponsePolicyRulesUpdateResponse"
+      ( \o ->
+          ResponsePolicyRulesUpdateResponse
+            Core.<$> (o Core..:? "header")
+            Core.<*> (o Core..:? "responsePolicyRule")
+      )
+
+instance Core.ToJSON ResponsePolicyRulesUpdateResponse where
+  toJSON ResponsePolicyRulesUpdateResponse {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("header" Core..=) Core.<$> header,
+            ("responsePolicyRule" Core..=) Core.<$> responsePolicyRule
+          ]
+      )
diff --git a/gen/Gogol/DNS/Internal/Sum.hs b/gen/Gogol/DNS/Internal/Sum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/Internal/Sum.hs
@@ -0,0 +1,586 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.DNS.Internal.Sum
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.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.DNS.Internal.Sum
+  ( -- * Xgafv
+    Xgafv
+      ( Xgafv_1,
+        Xgafv_2,
+        ..
+      ),
+
+    -- * Change_Status
+    Change_Status
+      ( Change_Status_Pending,
+        Change_Status_Done,
+        ..
+      ),
+
+    -- * DnsKey_Algorithm
+    DnsKey_Algorithm
+      ( DnsKey_Algorithm_RSASHA1,
+        DnsKey_Algorithm_RSASHA256,
+        DnsKey_Algorithm_RSASHA512,
+        DnsKey_Algorithm_ECDSAP256SHA256,
+        DnsKey_Algorithm_ECDSAP384SHA384,
+        ..
+      ),
+
+    -- * DnsKey_Type
+    DnsKey_Type
+      ( DnsKey_Type_KEYSIGNING,
+        DnsKey_Type_ZONESIGNING,
+        ..
+      ),
+
+    -- * DnsKeyDigest_Type
+    DnsKeyDigest_Type
+      ( DnsKeyDigest_Type_SHA1,
+        DnsKeyDigest_Type_SHA256,
+        DnsKeyDigest_Type_SHA384,
+        ..
+      ),
+
+    -- * DnsKeySpec_Algorithm
+    DnsKeySpec_Algorithm
+      ( DnsKeySpec_Algorithm_RSASHA1,
+        DnsKeySpec_Algorithm_RSASHA256,
+        DnsKeySpec_Algorithm_RSASHA512,
+        DnsKeySpec_Algorithm_ECDSAP256SHA256,
+        DnsKeySpec_Algorithm_ECDSAP384SHA384,
+        ..
+      ),
+
+    -- * DnsKeySpec_KeyType
+    DnsKeySpec_KeyType
+      ( DnsKeySpec_KeyType_KEYSIGNING,
+        DnsKeySpec_KeyType_ZONESIGNING,
+        ..
+      ),
+
+    -- * ManagedZone_Visibility
+    ManagedZone_Visibility
+      ( ManagedZone_Visibility_Public,
+        ManagedZone_Visibility_Private,
+        ..
+      ),
+
+    -- * ManagedZoneDnsSecConfig_NonExistence
+    ManagedZoneDnsSecConfig_NonExistence
+      ( ManagedZoneDnsSecConfig_NonExistence_Nsec,
+        ManagedZoneDnsSecConfig_NonExistence_NSEC3,
+        ..
+      ),
+
+    -- * ManagedZoneDnsSecConfig_State
+    ManagedZoneDnsSecConfig_State
+      ( ManagedZoneDnsSecConfig_State_Off,
+        ManagedZoneDnsSecConfig_State_ON,
+        ManagedZoneDnsSecConfig_State_Transfer,
+        ..
+      ),
+
+    -- * ManagedZoneForwardingConfigNameServerTarget_ForwardingPath
+    ManagedZoneForwardingConfigNameServerTarget_ForwardingPath
+      ( ManagedZoneForwardingConfigNameServerTarget_ForwardingPath_Default,
+        ManagedZoneForwardingConfigNameServerTarget_ForwardingPath_Private,
+        ..
+      ),
+
+    -- * Operation_Status
+    Operation_Status
+      ( Operation_Status_Pending,
+        Operation_Status_Done,
+        ..
+      ),
+
+    -- * PolicyAlternativeNameServerConfigTargetNameServer_ForwardingPath
+    PolicyAlternativeNameServerConfigTargetNameServer_ForwardingPath
+      ( PolicyAlternativeNameServerConfigTargetNameServer_ForwardingPath_Default,
+        PolicyAlternativeNameServerConfigTargetNameServer_ForwardingPath_Private,
+        ..
+      ),
+
+    -- * ResponsePolicyRule_Behavior
+    ResponsePolicyRule_Behavior
+      ( ResponsePolicyRule_Behavior_BEHAVIORUNSPECIFIED,
+        ResponsePolicyRule_Behavior_BYPASSRESPONSEPOLICY,
+        ..
+      ),
+
+    -- * ChangesListSortBy
+    ChangesListSortBy
+      ( ChangesListSortBy_CHANGESEQUENCE,
+        ..
+      ),
+
+    -- * ManagedZoneOperationsListSortBy
+    ManagedZoneOperationsListSortBy
+      ( ManagedZoneOperationsListSortBy_STARTTIME,
+        ManagedZoneOperationsListSortBy_ID,
+        ..
+      ),
+  )
+where
+
+import Gogol.Prelude qualified as Core
+
+-- | V1 error format.
+newtype Xgafv = Xgafv {fromXgafv :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+-- | v1 error format
+pattern Xgafv_1 :: Xgafv
+pattern Xgafv_1 = Xgafv "1"
+
+-- | v2 error format
+pattern Xgafv_2 :: Xgafv
+pattern Xgafv_2 = Xgafv "2"
+
+{-# COMPLETE
+  Xgafv_1,
+  Xgafv_2,
+  Xgafv
+  #-}
+
+-- | Status of the operation (output only). A status of \"done\" means that the request to update the authoritative servers has been sent, but the servers might not be updated yet.
+newtype Change_Status = Change_Status {fromChange_Status :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+pattern Change_Status_Pending :: Change_Status
+pattern Change_Status_Pending = Change_Status "PENDING"
+
+pattern Change_Status_Done :: Change_Status
+pattern Change_Status_Done = Change_Status "DONE"
+
+{-# COMPLETE
+  Change_Status_Pending,
+  Change_Status_Done,
+  Change_Status
+  #-}
+
+-- | String mnemonic specifying the DNSSEC algorithm of this key. Immutable after creation time.
+newtype DnsKey_Algorithm = DnsKey_Algorithm {fromDnsKey_Algorithm :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+pattern DnsKey_Algorithm_RSASHA1 :: DnsKey_Algorithm
+pattern DnsKey_Algorithm_RSASHA1 = DnsKey_Algorithm "RSASHA1"
+
+pattern DnsKey_Algorithm_RSASHA256 :: DnsKey_Algorithm
+pattern DnsKey_Algorithm_RSASHA256 = DnsKey_Algorithm "RSASHA256"
+
+pattern DnsKey_Algorithm_RSASHA512 :: DnsKey_Algorithm
+pattern DnsKey_Algorithm_RSASHA512 = DnsKey_Algorithm "RSASHA512"
+
+pattern DnsKey_Algorithm_ECDSAP256SHA256 :: DnsKey_Algorithm
+pattern DnsKey_Algorithm_ECDSAP256SHA256 = DnsKey_Algorithm "ECDSAP256SHA256"
+
+pattern DnsKey_Algorithm_ECDSAP384SHA384 :: DnsKey_Algorithm
+pattern DnsKey_Algorithm_ECDSAP384SHA384 = DnsKey_Algorithm "ECDSAP384SHA384"
+
+{-# COMPLETE
+  DnsKey_Algorithm_RSASHA1,
+  DnsKey_Algorithm_RSASHA256,
+  DnsKey_Algorithm_RSASHA512,
+  DnsKey_Algorithm_ECDSAP256SHA256,
+  DnsKey_Algorithm_ECDSAP384SHA384,
+  DnsKey_Algorithm
+  #-}
+
+-- | One of \"KEY/SIGNING\" or \"ZONE/SIGNING\". Keys of type KEY_SIGNING have the Secure Entry Point flag set and, when active, are used to sign only resource record sets of type DNSKEY. Otherwise, the Secure Entry Point flag is cleared, and this key is used to sign only resource record sets of other types. Immutable after creation time.
+newtype DnsKey_Type = DnsKey_Type {fromDnsKey_Type :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+pattern DnsKey_Type_KEYSIGNING :: DnsKey_Type
+pattern DnsKey_Type_KEYSIGNING = DnsKey_Type "KEY_SIGNING"
+
+pattern DnsKey_Type_ZONESIGNING :: DnsKey_Type
+pattern DnsKey_Type_ZONESIGNING = DnsKey_Type "ZONE_SIGNING"
+
+{-# COMPLETE
+  DnsKey_Type_KEYSIGNING,
+  DnsKey_Type_ZONESIGNING,
+  DnsKey_Type
+  #-}
+
+-- | Specifies the algorithm used to calculate this digest.
+newtype DnsKeyDigest_Type = DnsKeyDigest_Type {fromDnsKeyDigest_Type :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+pattern DnsKeyDigest_Type_SHA1 :: DnsKeyDigest_Type
+pattern DnsKeyDigest_Type_SHA1 = DnsKeyDigest_Type "SHA1"
+
+pattern DnsKeyDigest_Type_SHA256 :: DnsKeyDigest_Type
+pattern DnsKeyDigest_Type_SHA256 = DnsKeyDigest_Type "SHA256"
+
+pattern DnsKeyDigest_Type_SHA384 :: DnsKeyDigest_Type
+pattern DnsKeyDigest_Type_SHA384 = DnsKeyDigest_Type "SHA384"
+
+{-# COMPLETE
+  DnsKeyDigest_Type_SHA1,
+  DnsKeyDigest_Type_SHA256,
+  DnsKeyDigest_Type_SHA384,
+  DnsKeyDigest_Type
+  #-}
+
+-- | String mnemonic specifying the DNSSEC algorithm of this key.
+newtype DnsKeySpec_Algorithm = DnsKeySpec_Algorithm {fromDnsKeySpec_Algorithm :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+pattern DnsKeySpec_Algorithm_RSASHA1 :: DnsKeySpec_Algorithm
+pattern DnsKeySpec_Algorithm_RSASHA1 = DnsKeySpec_Algorithm "RSASHA1"
+
+pattern DnsKeySpec_Algorithm_RSASHA256 :: DnsKeySpec_Algorithm
+pattern DnsKeySpec_Algorithm_RSASHA256 = DnsKeySpec_Algorithm "RSASHA256"
+
+pattern DnsKeySpec_Algorithm_RSASHA512 :: DnsKeySpec_Algorithm
+pattern DnsKeySpec_Algorithm_RSASHA512 = DnsKeySpec_Algorithm "RSASHA512"
+
+pattern DnsKeySpec_Algorithm_ECDSAP256SHA256 :: DnsKeySpec_Algorithm
+pattern DnsKeySpec_Algorithm_ECDSAP256SHA256 = DnsKeySpec_Algorithm "ECDSAP256SHA256"
+
+pattern DnsKeySpec_Algorithm_ECDSAP384SHA384 :: DnsKeySpec_Algorithm
+pattern DnsKeySpec_Algorithm_ECDSAP384SHA384 = DnsKeySpec_Algorithm "ECDSAP384SHA384"
+
+{-# COMPLETE
+  DnsKeySpec_Algorithm_RSASHA1,
+  DnsKeySpec_Algorithm_RSASHA256,
+  DnsKeySpec_Algorithm_RSASHA512,
+  DnsKeySpec_Algorithm_ECDSAP256SHA256,
+  DnsKeySpec_Algorithm_ECDSAP384SHA384,
+  DnsKeySpec_Algorithm
+  #-}
+
+-- | Specifies whether this is a key signing key (KSK) or a zone signing key (ZSK). Key signing keys have the Secure Entry Point flag set and, when active, are only used to sign resource record sets of type DNSKEY. Zone signing keys do not have the Secure Entry Point flag set and are used to sign all other types of resource record sets.
+newtype DnsKeySpec_KeyType = DnsKeySpec_KeyType {fromDnsKeySpec_KeyType :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+pattern DnsKeySpec_KeyType_KEYSIGNING :: DnsKeySpec_KeyType
+pattern DnsKeySpec_KeyType_KEYSIGNING = DnsKeySpec_KeyType "KEY_SIGNING"
+
+pattern DnsKeySpec_KeyType_ZONESIGNING :: DnsKeySpec_KeyType
+pattern DnsKeySpec_KeyType_ZONESIGNING = DnsKeySpec_KeyType "ZONE_SIGNING"
+
+{-# COMPLETE
+  DnsKeySpec_KeyType_KEYSIGNING,
+  DnsKeySpec_KeyType_ZONESIGNING,
+  DnsKeySpec_KeyType
+  #-}
+
+-- | The zone\'s visibility: public zones are exposed to the Internet, while private zones are visible only to Virtual Private Cloud resources.
+newtype ManagedZone_Visibility = ManagedZone_Visibility {fromManagedZone_Visibility :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+pattern ManagedZone_Visibility_Public :: ManagedZone_Visibility
+pattern ManagedZone_Visibility_Public = ManagedZone_Visibility "PUBLIC"
+
+pattern ManagedZone_Visibility_Private :: ManagedZone_Visibility
+pattern ManagedZone_Visibility_Private = ManagedZone_Visibility "PRIVATE"
+
+{-# COMPLETE
+  ManagedZone_Visibility_Public,
+  ManagedZone_Visibility_Private,
+  ManagedZone_Visibility
+  #-}
+
+-- | Specifies the mechanism for authenticated denial-of-existence responses. Can only be changed while the state is OFF.
+newtype ManagedZoneDnsSecConfig_NonExistence = ManagedZoneDnsSecConfig_NonExistence {fromManagedZoneDnsSecConfig_NonExistence :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+pattern ManagedZoneDnsSecConfig_NonExistence_Nsec :: ManagedZoneDnsSecConfig_NonExistence
+pattern ManagedZoneDnsSecConfig_NonExistence_Nsec = ManagedZoneDnsSecConfig_NonExistence "NSEC"
+
+pattern ManagedZoneDnsSecConfig_NonExistence_NSEC3 :: ManagedZoneDnsSecConfig_NonExistence
+pattern ManagedZoneDnsSecConfig_NonExistence_NSEC3 = ManagedZoneDnsSecConfig_NonExistence "NSEC3"
+
+{-# COMPLETE
+  ManagedZoneDnsSecConfig_NonExistence_Nsec,
+  ManagedZoneDnsSecConfig_NonExistence_NSEC3,
+  ManagedZoneDnsSecConfig_NonExistence
+  #-}
+
+-- | Specifies whether DNSSEC is enabled, and what mode it is in.
+newtype ManagedZoneDnsSecConfig_State = ManagedZoneDnsSecConfig_State {fromManagedZoneDnsSecConfig_State :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+-- | DNSSEC is disabled; the zone is not signed.
+pattern ManagedZoneDnsSecConfig_State_Off :: ManagedZoneDnsSecConfig_State
+pattern ManagedZoneDnsSecConfig_State_Off = ManagedZoneDnsSecConfig_State "OFF"
+
+-- | DNSSEC is enabled; the zone is signed and fully managed.
+pattern ManagedZoneDnsSecConfig_State_ON :: ManagedZoneDnsSecConfig_State
+pattern ManagedZoneDnsSecConfig_State_ON = ManagedZoneDnsSecConfig_State "ON"
+
+-- | DNSSEC is enabled, but in a \"transfer\" mode.
+pattern ManagedZoneDnsSecConfig_State_Transfer :: ManagedZoneDnsSecConfig_State
+pattern ManagedZoneDnsSecConfig_State_Transfer = ManagedZoneDnsSecConfig_State "TRANSFER"
+
+{-# COMPLETE
+  ManagedZoneDnsSecConfig_State_Off,
+  ManagedZoneDnsSecConfig_State_ON,
+  ManagedZoneDnsSecConfig_State_Transfer,
+  ManagedZoneDnsSecConfig_State
+  #-}
+
+-- | Forwarding path for this NameServerTarget. If unset or set to DEFAULT, Cloud DNS makes forwarding decisions based on IP address ranges; that is, RFC1918 addresses go to the VPC network, non-RFC1918 addresses go to the internet. When set to PRIVATE, Cloud DNS always sends queries through the VPC network for this target.
+newtype ManagedZoneForwardingConfigNameServerTarget_ForwardingPath = ManagedZoneForwardingConfigNameServerTarget_ForwardingPath {fromManagedZoneForwardingConfigNameServerTarget_ForwardingPath :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+-- | Cloud DNS makes forwarding decisions based on address ranges; that is, RFC1918 addresses forward to the target through the VPC and non-RFC1918 addresses forward to the target through the internet
+pattern ManagedZoneForwardingConfigNameServerTarget_ForwardingPath_Default :: ManagedZoneForwardingConfigNameServerTarget_ForwardingPath
+pattern ManagedZoneForwardingConfigNameServerTarget_ForwardingPath_Default = ManagedZoneForwardingConfigNameServerTarget_ForwardingPath "DEFAULT"
+
+-- | Cloud DNS always forwards to this target through the VPC.
+pattern ManagedZoneForwardingConfigNameServerTarget_ForwardingPath_Private :: ManagedZoneForwardingConfigNameServerTarget_ForwardingPath
+pattern ManagedZoneForwardingConfigNameServerTarget_ForwardingPath_Private = ManagedZoneForwardingConfigNameServerTarget_ForwardingPath "PRIVATE"
+
+{-# COMPLETE
+  ManagedZoneForwardingConfigNameServerTarget_ForwardingPath_Default,
+  ManagedZoneForwardingConfigNameServerTarget_ForwardingPath_Private,
+  ManagedZoneForwardingConfigNameServerTarget_ForwardingPath
+  #-}
+
+-- | Status of the operation. Can be one of the following: \"PENDING\" or \"DONE\" (output only). A status of \"DONE\" means that the request to update the authoritative servers has been sent, but the servers might not be updated yet.
+newtype Operation_Status = Operation_Status {fromOperation_Status :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+pattern Operation_Status_Pending :: Operation_Status
+pattern Operation_Status_Pending = Operation_Status "PENDING"
+
+pattern Operation_Status_Done :: Operation_Status
+pattern Operation_Status_Done = Operation_Status "DONE"
+
+{-# COMPLETE
+  Operation_Status_Pending,
+  Operation_Status_Done,
+  Operation_Status
+  #-}
+
+-- | Forwarding path for this TargetNameServer. If unset or set to DEFAULT, Cloud DNS makes forwarding decisions based on address ranges; that is, RFC1918 addresses go to the VPC network, non-RFC1918 addresses go to the internet. When set to PRIVATE, Cloud DNS always sends queries through the VPC network for this target.
+newtype PolicyAlternativeNameServerConfigTargetNameServer_ForwardingPath = PolicyAlternativeNameServerConfigTargetNameServer_ForwardingPath {fromPolicyAlternativeNameServerConfigTargetNameServer_ForwardingPath :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+-- | Cloud DNS makes forwarding decision based on IP address ranges; that is, RFC1918 addresses forward to the target through the VPC and non-RFC1918 addresses forward to the target through the internet
+pattern PolicyAlternativeNameServerConfigTargetNameServer_ForwardingPath_Default :: PolicyAlternativeNameServerConfigTargetNameServer_ForwardingPath
+pattern PolicyAlternativeNameServerConfigTargetNameServer_ForwardingPath_Default = PolicyAlternativeNameServerConfigTargetNameServer_ForwardingPath "DEFAULT"
+
+-- | Cloud DNS always forwards to this target through the VPC.
+pattern PolicyAlternativeNameServerConfigTargetNameServer_ForwardingPath_Private :: PolicyAlternativeNameServerConfigTargetNameServer_ForwardingPath
+pattern PolicyAlternativeNameServerConfigTargetNameServer_ForwardingPath_Private = PolicyAlternativeNameServerConfigTargetNameServer_ForwardingPath "PRIVATE"
+
+{-# COMPLETE
+  PolicyAlternativeNameServerConfigTargetNameServer_ForwardingPath_Default,
+  PolicyAlternativeNameServerConfigTargetNameServer_ForwardingPath_Private,
+  PolicyAlternativeNameServerConfigTargetNameServer_ForwardingPath
+  #-}
+
+-- | Answer this query with a behavior rather than DNS data.
+newtype ResponsePolicyRule_Behavior = ResponsePolicyRule_Behavior {fromResponsePolicyRule_Behavior :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+pattern ResponsePolicyRule_Behavior_BEHAVIORUNSPECIFIED :: ResponsePolicyRule_Behavior
+pattern ResponsePolicyRule_Behavior_BEHAVIORUNSPECIFIED = ResponsePolicyRule_Behavior "BEHAVIOR_UNSPECIFIED"
+
+-- | Skip a less-specific ResponsePolicyRule and continue normal query logic. This can be used in conjunction with a wildcard to exempt a subset of the wildcard ResponsePolicyRule from the ResponsePolicy behavior and e.g., query the public internet instead. For instance, if these rules exist: *.example.com -> 1.2.3.4 foo.example.com -> PASSTHRU Then a query for \'foo.example.com\' skips the wildcard.
+pattern ResponsePolicyRule_Behavior_BYPASSRESPONSEPOLICY :: ResponsePolicyRule_Behavior
+pattern ResponsePolicyRule_Behavior_BYPASSRESPONSEPOLICY = ResponsePolicyRule_Behavior "BYPASS_RESPONSE_POLICY"
+
+{-# COMPLETE
+  ResponsePolicyRule_Behavior_BEHAVIORUNSPECIFIED,
+  ResponsePolicyRule_Behavior_BYPASSRESPONSEPOLICY,
+  ResponsePolicyRule_Behavior
+  #-}
+
+-- | Sorting criterion. The only supported value is change sequence.
+newtype ChangesListSortBy = ChangesListSortBy {fromChangesListSortBy :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+pattern ChangesListSortBy_CHANGESEQUENCE :: ChangesListSortBy
+pattern ChangesListSortBy_CHANGESEQUENCE = ChangesListSortBy "CHANGE_SEQUENCE"
+
+{-# COMPLETE
+  ChangesListSortBy_CHANGESEQUENCE,
+  ChangesListSortBy
+  #-}
+
+-- | Sorting criterion. The only supported values are START_TIME and ID.
+newtype ManagedZoneOperationsListSortBy = ManagedZoneOperationsListSortBy {fromManagedZoneOperationsListSortBy :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+pattern ManagedZoneOperationsListSortBy_STARTTIME :: ManagedZoneOperationsListSortBy
+pattern ManagedZoneOperationsListSortBy_STARTTIME = ManagedZoneOperationsListSortBy "START_TIME"
+
+pattern ManagedZoneOperationsListSortBy_ID :: ManagedZoneOperationsListSortBy
+pattern ManagedZoneOperationsListSortBy_ID = ManagedZoneOperationsListSortBy "ID"
+
+{-# COMPLETE
+  ManagedZoneOperationsListSortBy_STARTTIME,
+  ManagedZoneOperationsListSortBy_ID,
+  ManagedZoneOperationsListSortBy
+  #-}
diff --git a/gen/Gogol/DNS/ManagedZoneOperations/Get.hs b/gen/Gogol/DNS/ManagedZoneOperations/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/ManagedZoneOperations/Get.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.DNS.ManagedZoneOperations.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)
+--
+-- Fetches the representation of an existing Operation.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.managedZoneOperations.get@.
+module Gogol.DNS.ManagedZoneOperations.Get
+  ( -- * Resource
+    DNSManagedZoneOperationsGetResource,
+
+    -- ** Constructing a Request
+    DNSManagedZoneOperationsGet (..),
+    newDNSManagedZoneOperationsGet,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.managedZoneOperations.get@ method which the
+-- 'DNSManagedZoneOperationsGet' request conforms to.
+type DNSManagedZoneOperationsGetResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "managedZones"
+    Core.:> Core.Capture "managedZone" 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 "clientOperationId" 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
+
+-- | Fetches the representation of an existing Operation.
+--
+-- /See:/ 'newDNSManagedZoneOperationsGet' smart constructor.
+data DNSManagedZoneOperationsGet = DNSManagedZoneOperationsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Identifies the managed zone addressed by this request.
+    managedZone :: Core.Text,
+    -- | Identifies the operation addressed by this request (ID of the operation).
+    operation :: Core.Text,
+    -- | Identifies the project addressed by 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 'DNSManagedZoneOperationsGet' with the minimum fields required to make a request.
+newDNSManagedZoneOperationsGet ::
+  -- |  Identifies the managed zone addressed by this request. See 'managedZone'.
+  Core.Text ->
+  -- |  Identifies the operation addressed by this request (ID of the operation). See 'operation'.
+  Core.Text ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  DNSManagedZoneOperationsGet
+newDNSManagedZoneOperationsGet managedZone operation project =
+  DNSManagedZoneOperationsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      clientOperationId = Core.Nothing,
+      location = "global",
+      managedZone = managedZone,
+      operation = operation,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSManagedZoneOperationsGet where
+  type Rs DNSManagedZoneOperationsGet = Operation
+  type
+    Scopes DNSManagedZoneOperationsGet =
+      '[ CloudPlatform'FullControl,
+         CloudPlatform'ReadOnly,
+         Ndev'Clouddns'Readonly,
+         Ndev'Clouddns'Readwrite
+       ]
+  requestClient DNSManagedZoneOperationsGet {..} =
+    go
+      project
+      location
+      managedZone
+      operation
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSManagedZoneOperationsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/ManagedZoneOperations/List.hs b/gen/Gogol/DNS/ManagedZoneOperations/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/ManagedZoneOperations/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.DNS.ManagedZoneOperations.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)
+--
+-- Enumerates Operations for the given ManagedZone.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.managedZoneOperations.list@.
+module Gogol.DNS.ManagedZoneOperations.List
+  ( -- * Resource
+    DNSManagedZoneOperationsListResource,
+
+    -- ** Constructing a Request
+    DNSManagedZoneOperationsList (..),
+    newDNSManagedZoneOperationsList,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.managedZoneOperations.list@ method which the
+-- 'DNSManagedZoneOperationsList' request conforms to.
+type DNSManagedZoneOperationsListResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "managedZones"
+    Core.:> Core.Capture "managedZone" 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 "maxResults" Core.Int32
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "sortBy" ManagedZoneOperationsListSortBy
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] ManagedZoneOperationsListResponse
+
+-- | Enumerates Operations for the given ManagedZone.
+--
+-- /See:/ 'newDNSManagedZoneOperationsList' smart constructor.
+data DNSManagedZoneOperationsList = DNSManagedZoneOperationsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Identifies the managed zone addressed by this request.
+    managedZone :: Core.Text,
+    -- | Optional. Maximum number of results to be returned. If unspecified, the server decides how many results to return.
+    maxResults :: (Core.Maybe Core.Int32),
+    -- | Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Identifies the project addressed by this request.
+    project :: Core.Text,
+    -- | Sorting criterion. The only supported values are START_TIME and ID.
+    sortBy :: ManagedZoneOperationsListSortBy,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'DNSManagedZoneOperationsList' with the minimum fields required to make a request.
+newDNSManagedZoneOperationsList ::
+  -- |  Identifies the managed zone addressed by this request. See 'managedZone'.
+  Core.Text ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  DNSManagedZoneOperationsList
+newDNSManagedZoneOperationsList managedZone project =
+  DNSManagedZoneOperationsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      location = "global",
+      managedZone = managedZone,
+      maxResults = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      sortBy = ManagedZoneOperationsListSortBy_STARTTIME,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSManagedZoneOperationsList where
+  type
+    Rs DNSManagedZoneOperationsList =
+      ManagedZoneOperationsListResponse
+  type
+    Scopes DNSManagedZoneOperationsList =
+      '[ CloudPlatform'FullControl,
+         CloudPlatform'ReadOnly,
+         Ndev'Clouddns'Readonly,
+         Ndev'Clouddns'Readwrite
+       ]
+  requestClient DNSManagedZoneOperationsList {..} =
+    go
+      project
+      location
+      managedZone
+      xgafv
+      accessToken
+      callback
+      maxResults
+      pageToken
+      (Core.Just sortBy)
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSManagedZoneOperationsListResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/ManagedZones/Create.hs b/gen/Gogol/DNS/ManagedZones/Create.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/ManagedZones/Create.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.DNS.ManagedZones.Create
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.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 ManagedZone.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.managedZones.create@.
+module Gogol.DNS.ManagedZones.Create
+  ( -- * Resource
+    DNSManagedZonesCreateResource,
+
+    -- ** Constructing a Request
+    DNSManagedZonesCreate (..),
+    newDNSManagedZonesCreate,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.managedZones.create@ method which the
+-- 'DNSManagedZonesCreate' request conforms to.
+type DNSManagedZonesCreateResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "managedZones"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ManagedZone
+    Core.:> Core.Post '[Core.JSON] ManagedZone
+
+-- | Creates a new ManagedZone.
+--
+-- /See:/ 'newDNSManagedZonesCreate' smart constructor.
+data DNSManagedZonesCreate = DNSManagedZonesCreate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: ManagedZone,
+    -- | Identifies the project addressed by 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 'DNSManagedZonesCreate' with the minimum fields required to make a request.
+newDNSManagedZonesCreate ::
+  -- |  Multipart request metadata. See 'payload'.
+  ManagedZone ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  DNSManagedZonesCreate
+newDNSManagedZonesCreate payload project =
+  DNSManagedZonesCreate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      clientOperationId = Core.Nothing,
+      location = "global",
+      payload = payload,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSManagedZonesCreate where
+  type Rs DNSManagedZonesCreate = ManagedZone
+  type
+    Scopes DNSManagedZonesCreate =
+      '[CloudPlatform'FullControl, Ndev'Clouddns'Readwrite]
+  requestClient DNSManagedZonesCreate {..} =
+    go
+      project
+      location
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSManagedZonesCreateResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/ManagedZones/Delete.hs b/gen/Gogol/DNS/ManagedZones/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/ManagedZones/Delete.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.DNS.ManagedZones.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 a previously created ManagedZone.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.managedZones.delete@.
+module Gogol.DNS.ManagedZones.Delete
+  ( -- * Resource
+    DNSManagedZonesDeleteResource,
+
+    -- ** Constructing a Request
+    DNSManagedZonesDelete (..),
+    newDNSManagedZonesDelete,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.managedZones.delete@ method which the
+-- 'DNSManagedZonesDelete' request conforms to.
+type DNSManagedZonesDeleteResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "managedZones"
+    Core.:> Core.Capture "managedZone" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" 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 a previously created ManagedZone.
+--
+-- /See:/ 'newDNSManagedZonesDelete' smart constructor.
+data DNSManagedZonesDelete = DNSManagedZonesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Identifies the managed zone addressed by this request. Can be the managed zone name or ID.
+    managedZone :: Core.Text,
+    -- | Identifies the project addressed by 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 'DNSManagedZonesDelete' with the minimum fields required to make a request.
+newDNSManagedZonesDelete ::
+  -- |  Identifies the managed zone addressed by this request. Can be the managed zone name or ID. See 'managedZone'.
+  Core.Text ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  DNSManagedZonesDelete
+newDNSManagedZonesDelete managedZone project =
+  DNSManagedZonesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      clientOperationId = Core.Nothing,
+      location = "global",
+      managedZone = managedZone,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSManagedZonesDelete where
+  type Rs DNSManagedZonesDelete = ()
+  type
+    Scopes DNSManagedZonesDelete =
+      '[CloudPlatform'FullControl, Ndev'Clouddns'Readwrite]
+  requestClient DNSManagedZonesDelete {..} =
+    go
+      project
+      location
+      managedZone
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSManagedZonesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/ManagedZones/Get.hs b/gen/Gogol/DNS/ManagedZones/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/ManagedZones/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.DNS.ManagedZones.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)
+--
+-- Fetches the representation of an existing ManagedZone.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.managedZones.get@.
+module Gogol.DNS.ManagedZones.Get
+  ( -- * Resource
+    DNSManagedZonesGetResource,
+
+    -- ** Constructing a Request
+    DNSManagedZonesGet (..),
+    newDNSManagedZonesGet,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.managedZones.get@ method which the
+-- 'DNSManagedZonesGet' request conforms to.
+type DNSManagedZonesGetResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "managedZones"
+    Core.:> Core.Capture "managedZone" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" 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] ManagedZone
+
+-- | Fetches the representation of an existing ManagedZone.
+--
+-- /See:/ 'newDNSManagedZonesGet' smart constructor.
+data DNSManagedZonesGet = DNSManagedZonesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Identifies the managed zone addressed by this request. Can be the managed zone name or ID.
+    managedZone :: Core.Text,
+    -- | Identifies the project addressed by 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 'DNSManagedZonesGet' with the minimum fields required to make a request.
+newDNSManagedZonesGet ::
+  -- |  Identifies the managed zone addressed by this request. Can be the managed zone name or ID. See 'managedZone'.
+  Core.Text ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  DNSManagedZonesGet
+newDNSManagedZonesGet managedZone project =
+  DNSManagedZonesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      clientOperationId = Core.Nothing,
+      location = "global",
+      managedZone = managedZone,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSManagedZonesGet where
+  type Rs DNSManagedZonesGet = ManagedZone
+  type
+    Scopes DNSManagedZonesGet =
+      '[ CloudPlatform'FullControl,
+         CloudPlatform'ReadOnly,
+         Ndev'Clouddns'Readonly,
+         Ndev'Clouddns'Readwrite
+       ]
+  requestClient DNSManagedZonesGet {..} =
+    go
+      project
+      location
+      managedZone
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSManagedZonesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/ManagedZones/List.hs b/gen/Gogol/DNS/ManagedZones/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/ManagedZones/List.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.DNS.ManagedZones.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)
+--
+-- Enumerates ManagedZones that have been created but not yet deleted.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.managedZones.list@.
+module Gogol.DNS.ManagedZones.List
+  ( -- * Resource
+    DNSManagedZonesListResource,
+
+    -- ** Constructing a Request
+    DNSManagedZonesList (..),
+    newDNSManagedZonesList,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.managedZones.list@ method which the
+-- 'DNSManagedZonesList' request conforms to.
+type DNSManagedZonesListResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "managedZones"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "dnsName" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Int32
+    Core.:> Core.QueryParam "pageToken" 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] ManagedZonesListResponse
+
+-- | Enumerates ManagedZones that have been created but not yet deleted.
+--
+-- /See:/ 'newDNSManagedZonesList' smart constructor.
+data DNSManagedZonesList = DNSManagedZonesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Restricts the list to return only zones with this domain name.
+    dnsName :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Optional. Maximum number of results to be returned. If unspecified, the server decides how many results to return.
+    maxResults :: (Core.Maybe Core.Int32),
+    -- | Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Identifies the project addressed by 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 'DNSManagedZonesList' with the minimum fields required to make a request.
+newDNSManagedZonesList ::
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  DNSManagedZonesList
+newDNSManagedZonesList project =
+  DNSManagedZonesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      dnsName = Core.Nothing,
+      location = "global",
+      maxResults = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSManagedZonesList where
+  type Rs DNSManagedZonesList = ManagedZonesListResponse
+  type
+    Scopes DNSManagedZonesList =
+      '[ CloudPlatform'FullControl,
+         CloudPlatform'ReadOnly,
+         Ndev'Clouddns'Readonly,
+         Ndev'Clouddns'Readwrite
+       ]
+  requestClient DNSManagedZonesList {..} =
+    go
+      project
+      location
+      xgafv
+      accessToken
+      callback
+      dnsName
+      maxResults
+      pageToken
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSManagedZonesListResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/ManagedZones/Patch.hs b/gen/Gogol/DNS/ManagedZones/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/ManagedZones/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.DNS.ManagedZones.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)
+--
+-- Applies a partial update to an existing ManagedZone.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.managedZones.patch@.
+module Gogol.DNS.ManagedZones.Patch
+  ( -- * Resource
+    DNSManagedZonesPatchResource,
+
+    -- ** Constructing a Request
+    DNSManagedZonesPatch (..),
+    newDNSManagedZonesPatch,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.managedZones.patch@ method which the
+-- 'DNSManagedZonesPatch' request conforms to.
+type DNSManagedZonesPatchResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "managedZones"
+    Core.:> Core.Capture "managedZone" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ManagedZone
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Applies a partial update to an existing ManagedZone.
+--
+-- /See:/ 'newDNSManagedZonesPatch' smart constructor.
+data DNSManagedZonesPatch = DNSManagedZonesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Identifies the managed zone addressed by this request. Can be the managed zone name or ID.
+    managedZone :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: ManagedZone,
+    -- | Identifies the project addressed by 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 'DNSManagedZonesPatch' with the minimum fields required to make a request.
+newDNSManagedZonesPatch ::
+  -- |  Identifies the managed zone addressed by this request. Can be the managed zone name or ID. See 'managedZone'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  ManagedZone ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  DNSManagedZonesPatch
+newDNSManagedZonesPatch managedZone payload project =
+  DNSManagedZonesPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      clientOperationId = Core.Nothing,
+      location = "global",
+      managedZone = managedZone,
+      payload = payload,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSManagedZonesPatch where
+  type Rs DNSManagedZonesPatch = Operation
+  type
+    Scopes DNSManagedZonesPatch =
+      '[CloudPlatform'FullControl, Ndev'Clouddns'Readwrite]
+  requestClient DNSManagedZonesPatch {..} =
+    go
+      project
+      location
+      managedZone
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSManagedZonesPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/ManagedZones/Update.hs b/gen/Gogol/DNS/ManagedZones/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/ManagedZones/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.DNS.ManagedZones.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 existing ManagedZone.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.managedZones.update@.
+module Gogol.DNS.ManagedZones.Update
+  ( -- * Resource
+    DNSManagedZonesUpdateResource,
+
+    -- ** Constructing a Request
+    DNSManagedZonesUpdate (..),
+    newDNSManagedZonesUpdate,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.managedZones.update@ method which the
+-- 'DNSManagedZonesUpdate' request conforms to.
+type DNSManagedZonesUpdateResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "managedZones"
+    Core.:> Core.Capture "managedZone" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ManagedZone
+    Core.:> Core.Put '[Core.JSON] Operation
+
+-- | Updates an existing ManagedZone.
+--
+-- /See:/ 'newDNSManagedZonesUpdate' smart constructor.
+data DNSManagedZonesUpdate = DNSManagedZonesUpdate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Identifies the managed zone addressed by this request. Can be the managed zone name or ID.
+    managedZone :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: ManagedZone,
+    -- | Identifies the project addressed by 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 'DNSManagedZonesUpdate' with the minimum fields required to make a request.
+newDNSManagedZonesUpdate ::
+  -- |  Identifies the managed zone addressed by this request. Can be the managed zone name or ID. See 'managedZone'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  ManagedZone ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  DNSManagedZonesUpdate
+newDNSManagedZonesUpdate managedZone payload project =
+  DNSManagedZonesUpdate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      clientOperationId = Core.Nothing,
+      location = "global",
+      managedZone = managedZone,
+      payload = payload,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSManagedZonesUpdate where
+  type Rs DNSManagedZonesUpdate = Operation
+  type
+    Scopes DNSManagedZonesUpdate =
+      '[CloudPlatform'FullControl, Ndev'Clouddns'Readwrite]
+  requestClient DNSManagedZonesUpdate {..} =
+    go
+      project
+      location
+      managedZone
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSManagedZonesUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/Policies/Create.hs b/gen/Gogol/DNS/Policies/Create.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/Policies/Create.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.DNS.Policies.Create
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.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.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.policies.create@.
+module Gogol.DNS.Policies.Create
+  ( -- * Resource
+    DNSPoliciesCreateResource,
+
+    -- ** Constructing a Request
+    DNSPoliciesCreate (..),
+    newDNSPoliciesCreate,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.policies.create@ method which the
+-- 'DNSPoliciesCreate' request conforms to.
+type DNSPoliciesCreateResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "policies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Policy
+    Core.:> Core.Post '[Core.JSON] Policy
+
+-- | Creates a new Policy.
+--
+-- /See:/ 'newDNSPoliciesCreate' smart constructor.
+data DNSPoliciesCreate = DNSPoliciesCreate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: Policy,
+    -- | Identifies the project addressed by 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 'DNSPoliciesCreate' with the minimum fields required to make a request.
+newDNSPoliciesCreate ::
+  -- |  Multipart request metadata. See 'payload'.
+  Policy ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  DNSPoliciesCreate
+newDNSPoliciesCreate payload project =
+  DNSPoliciesCreate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      clientOperationId = Core.Nothing,
+      location = "global",
+      payload = payload,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSPoliciesCreate where
+  type Rs DNSPoliciesCreate = Policy
+  type
+    Scopes DNSPoliciesCreate =
+      '[CloudPlatform'FullControl, Ndev'Clouddns'Readwrite]
+  requestClient DNSPoliciesCreate {..} =
+    go
+      project
+      location
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSPoliciesCreateResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/Policies/Delete.hs b/gen/Gogol/DNS/Policies/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/Policies/Delete.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.DNS.Policies.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 a previously created Policy. Fails if the policy is still being referenced by a network.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.policies.delete@.
+module Gogol.DNS.Policies.Delete
+  ( -- * Resource
+    DNSPoliciesDeleteResource,
+
+    -- ** Constructing a Request
+    DNSPoliciesDelete (..),
+    newDNSPoliciesDelete,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.policies.delete@ method which the
+-- 'DNSPoliciesDelete' request conforms to.
+type DNSPoliciesDeleteResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "policies"
+    Core.:> Core.Capture "policy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" 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 a previously created Policy. Fails if the policy is still being referenced by a network.
+--
+-- /See:/ 'newDNSPoliciesDelete' smart constructor.
+data DNSPoliciesDelete = DNSPoliciesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | User given friendly name of the policy addressed by this request.
+    policy :: Core.Text,
+    -- | Identifies the project addressed by 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 'DNSPoliciesDelete' with the minimum fields required to make a request.
+newDNSPoliciesDelete ::
+  -- |  User given friendly name of the policy addressed by this request. See 'policy'.
+  Core.Text ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  DNSPoliciesDelete
+newDNSPoliciesDelete policy project =
+  DNSPoliciesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      clientOperationId = Core.Nothing,
+      location = "global",
+      policy = policy,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSPoliciesDelete where
+  type Rs DNSPoliciesDelete = ()
+  type
+    Scopes DNSPoliciesDelete =
+      '[CloudPlatform'FullControl, Ndev'Clouddns'Readwrite]
+  requestClient DNSPoliciesDelete {..} =
+    go
+      project
+      location
+      policy
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSPoliciesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/Policies/Get.hs b/gen/Gogol/DNS/Policies/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/Policies/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.DNS.Policies.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)
+--
+-- Fetches the representation of an existing Policy.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.policies.get@.
+module Gogol.DNS.Policies.Get
+  ( -- * Resource
+    DNSPoliciesGetResource,
+
+    -- ** Constructing a Request
+    DNSPoliciesGet (..),
+    newDNSPoliciesGet,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.policies.get@ method which the
+-- 'DNSPoliciesGet' request conforms to.
+type DNSPoliciesGetResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "policies"
+    Core.:> Core.Capture "policy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" 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] Policy
+
+-- | Fetches the representation of an existing Policy.
+--
+-- /See:/ 'newDNSPoliciesGet' smart constructor.
+data DNSPoliciesGet = DNSPoliciesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | User given friendly name of the policy addressed by this request.
+    policy :: Core.Text,
+    -- | Identifies the project addressed by 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 'DNSPoliciesGet' with the minimum fields required to make a request.
+newDNSPoliciesGet ::
+  -- |  User given friendly name of the policy addressed by this request. See 'policy'.
+  Core.Text ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  DNSPoliciesGet
+newDNSPoliciesGet policy project =
+  DNSPoliciesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      clientOperationId = Core.Nothing,
+      location = "global",
+      policy = policy,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSPoliciesGet where
+  type Rs DNSPoliciesGet = Policy
+  type
+    Scopes DNSPoliciesGet =
+      '[ CloudPlatform'FullControl,
+         CloudPlatform'ReadOnly,
+         Ndev'Clouddns'Readonly,
+         Ndev'Clouddns'Readwrite
+       ]
+  requestClient DNSPoliciesGet {..} =
+    go
+      project
+      location
+      policy
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSPoliciesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/Policies/List.hs b/gen/Gogol/DNS/Policies/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/Policies/List.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.DNS.Policies.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)
+--
+-- Enumerates all Policies associated with a project.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.policies.list@.
+module Gogol.DNS.Policies.List
+  ( -- * Resource
+    DNSPoliciesListResource,
+
+    -- ** Constructing a Request
+    DNSPoliciesList (..),
+    newDNSPoliciesList,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.policies.list@ method which the
+-- 'DNSPoliciesList' request conforms to.
+type DNSPoliciesListResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "policies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Int32
+    Core.:> Core.QueryParam "pageToken" 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] PoliciesListResponse
+
+-- | Enumerates all Policies associated with a project.
+--
+-- /See:/ 'newDNSPoliciesList' smart constructor.
+data DNSPoliciesList = DNSPoliciesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Optional. Maximum number of results to be returned. If unspecified, the server decides how many results to return.
+    maxResults :: (Core.Maybe Core.Int32),
+    -- | Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Identifies the project addressed by 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 'DNSPoliciesList' with the minimum fields required to make a request.
+newDNSPoliciesList ::
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  DNSPoliciesList
+newDNSPoliciesList project =
+  DNSPoliciesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      location = "global",
+      maxResults = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSPoliciesList where
+  type Rs DNSPoliciesList = PoliciesListResponse
+  type
+    Scopes DNSPoliciesList =
+      '[ CloudPlatform'FullControl,
+         CloudPlatform'ReadOnly,
+         Ndev'Clouddns'Readonly,
+         Ndev'Clouddns'Readwrite
+       ]
+  requestClient DNSPoliciesList {..} =
+    go
+      project
+      location
+      xgafv
+      accessToken
+      callback
+      maxResults
+      pageToken
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSPoliciesListResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/Policies/Patch.hs b/gen/Gogol/DNS/Policies/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/Policies/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.DNS.Policies.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)
+--
+-- Applies a partial update to an existing Policy.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.policies.patch@.
+module Gogol.DNS.Policies.Patch
+  ( -- * Resource
+    DNSPoliciesPatchResource,
+
+    -- ** Constructing a Request
+    DNSPoliciesPatch (..),
+    newDNSPoliciesPatch,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.policies.patch@ method which the
+-- 'DNSPoliciesPatch' request conforms to.
+type DNSPoliciesPatchResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "policies"
+    Core.:> Core.Capture "policy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Policy
+    Core.:> Core.Patch '[Core.JSON] PoliciesPatchResponse
+
+-- | Applies a partial update to an existing Policy.
+--
+-- /See:/ 'newDNSPoliciesPatch' smart constructor.
+data DNSPoliciesPatch = DNSPoliciesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: Policy,
+    -- | User given friendly name of the policy addressed by this request.
+    policy :: Core.Text,
+    -- | Identifies the project addressed by 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 'DNSPoliciesPatch' with the minimum fields required to make a request.
+newDNSPoliciesPatch ::
+  -- |  Multipart request metadata. See 'payload'.
+  Policy ->
+  -- |  User given friendly name of the policy addressed by this request. See 'policy'.
+  Core.Text ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  DNSPoliciesPatch
+newDNSPoliciesPatch payload policy project =
+  DNSPoliciesPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      clientOperationId = Core.Nothing,
+      location = "global",
+      payload = payload,
+      policy = policy,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSPoliciesPatch where
+  type Rs DNSPoliciesPatch = PoliciesPatchResponse
+  type
+    Scopes DNSPoliciesPatch =
+      '[CloudPlatform'FullControl, Ndev'Clouddns'Readwrite]
+  requestClient DNSPoliciesPatch {..} =
+    go
+      project
+      location
+      policy
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSPoliciesPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/Policies/Update.hs b/gen/Gogol/DNS/Policies/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/Policies/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.DNS.Policies.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 existing Policy.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.policies.update@.
+module Gogol.DNS.Policies.Update
+  ( -- * Resource
+    DNSPoliciesUpdateResource,
+
+    -- ** Constructing a Request
+    DNSPoliciesUpdate (..),
+    newDNSPoliciesUpdate,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.policies.update@ method which the
+-- 'DNSPoliciesUpdate' request conforms to.
+type DNSPoliciesUpdateResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "policies"
+    Core.:> Core.Capture "policy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Policy
+    Core.:> Core.Put '[Core.JSON] PoliciesUpdateResponse
+
+-- | Updates an existing Policy.
+--
+-- /See:/ 'newDNSPoliciesUpdate' smart constructor.
+data DNSPoliciesUpdate = DNSPoliciesUpdate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: Policy,
+    -- | User given friendly name of the policy addressed by this request.
+    policy :: Core.Text,
+    -- | Identifies the project addressed by 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 'DNSPoliciesUpdate' with the minimum fields required to make a request.
+newDNSPoliciesUpdate ::
+  -- |  Multipart request metadata. See 'payload'.
+  Policy ->
+  -- |  User given friendly name of the policy addressed by this request. See 'policy'.
+  Core.Text ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  DNSPoliciesUpdate
+newDNSPoliciesUpdate payload policy project =
+  DNSPoliciesUpdate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      clientOperationId = Core.Nothing,
+      location = "global",
+      payload = payload,
+      policy = policy,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSPoliciesUpdate where
+  type Rs DNSPoliciesUpdate = PoliciesUpdateResponse
+  type
+    Scopes DNSPoliciesUpdate =
+      '[CloudPlatform'FullControl, Ndev'Clouddns'Readwrite]
+  requestClient DNSPoliciesUpdate {..} =
+    go
+      project
+      location
+      policy
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSPoliciesUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/Projects/Get.hs b/gen/Gogol/DNS/Projects/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/Projects/Get.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.DNS.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)
+--
+-- Fetches the representation of an existing Project.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.projects.get@.
+module Gogol.DNS.Projects.Get
+  ( -- * Resource
+    DNSProjectsGetResource,
+
+    -- ** Constructing a Request
+    DNSProjectsGet (..),
+    newDNSProjectsGet,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.projects.get@ method which the
+-- 'DNSProjectsGet' request conforms to.
+type DNSProjectsGetResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" 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
+
+-- | Fetches the representation of an existing Project.
+--
+-- /See:/ 'newDNSProjectsGet' smart constructor.
+data DNSProjectsGet = DNSProjectsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    location :: Core.Text,
+    -- | Identifies the project addressed by 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 'DNSProjectsGet' with the minimum fields required to make a request.
+newDNSProjectsGet ::
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  DNSProjectsGet
+newDNSProjectsGet project =
+  DNSProjectsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      clientOperationId = Core.Nothing,
+      location = "global",
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSProjectsGet where
+  type Rs DNSProjectsGet = Project
+  type
+    Scopes DNSProjectsGet =
+      '[ CloudPlatform'FullControl,
+         CloudPlatform'ReadOnly,
+         Ndev'Clouddns'Readonly,
+         Ndev'Clouddns'Readwrite
+       ]
+  requestClient DNSProjectsGet {..} =
+    go
+      project
+      location
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSProjectsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/ResourceRecordSets/Create.hs b/gen/Gogol/DNS/ResourceRecordSets/Create.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/ResourceRecordSets/Create.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.DNS.ResourceRecordSets.Create
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.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 ResourceRecordSet.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.resourceRecordSets.create@.
+module Gogol.DNS.ResourceRecordSets.Create
+  ( -- * Resource
+    DNSResourceRecordSetsCreateResource,
+
+    -- ** Constructing a Request
+    DNSResourceRecordSetsCreate (..),
+    newDNSResourceRecordSetsCreate,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.resourceRecordSets.create@ method which the
+-- 'DNSResourceRecordSetsCreate' request conforms to.
+type DNSResourceRecordSetsCreateResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "managedZones"
+    Core.:> Core.Capture "managedZone" Core.Text
+    Core.:> "rrsets"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ResourceRecordSet
+    Core.:> Core.Post '[Core.JSON] ResourceRecordSet
+
+-- | Creates a new ResourceRecordSet.
+--
+-- /See:/ 'newDNSResourceRecordSetsCreate' smart constructor.
+data DNSResourceRecordSetsCreate = DNSResourceRecordSetsCreate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Identifies the managed zone addressed by this request. Can be the managed zone name or ID.
+    managedZone :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: ResourceRecordSet,
+    -- | Identifies the project addressed by 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 'DNSResourceRecordSetsCreate' with the minimum fields required to make a request.
+newDNSResourceRecordSetsCreate ::
+  -- |  Identifies the managed zone addressed by this request. Can be the managed zone name or ID. See 'managedZone'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  ResourceRecordSet ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  DNSResourceRecordSetsCreate
+newDNSResourceRecordSetsCreate managedZone payload project =
+  DNSResourceRecordSetsCreate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      clientOperationId = Core.Nothing,
+      location = "global",
+      managedZone = managedZone,
+      payload = payload,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSResourceRecordSetsCreate where
+  type Rs DNSResourceRecordSetsCreate = ResourceRecordSet
+  type
+    Scopes DNSResourceRecordSetsCreate =
+      '[CloudPlatform'FullControl, Ndev'Clouddns'Readwrite]
+  requestClient DNSResourceRecordSetsCreate {..} =
+    go
+      project
+      location
+      managedZone
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSResourceRecordSetsCreateResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/ResourceRecordSets/Delete.hs b/gen/Gogol/DNS/ResourceRecordSets/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/ResourceRecordSets/Delete.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.DNS.ResourceRecordSets.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 a previously created ResourceRecordSet.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.resourceRecordSets.delete@.
+module Gogol.DNS.ResourceRecordSets.Delete
+  ( -- * Resource
+    DNSResourceRecordSetsDeleteResource,
+
+    -- ** Constructing a Request
+    DNSResourceRecordSetsDelete (..),
+    newDNSResourceRecordSetsDelete,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.resourceRecordSets.delete@ method which the
+-- 'DNSResourceRecordSetsDelete' request conforms to.
+type DNSResourceRecordSetsDeleteResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "managedZones"
+    Core.:> Core.Capture "managedZone" Core.Text
+    Core.:> "rrsets"
+    Core.:> Core.Capture "name" Core.Text
+    Core.:> Core.Capture "type" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" 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 a previously created ResourceRecordSet.
+--
+-- /See:/ 'newDNSResourceRecordSetsDelete' smart constructor.
+data DNSResourceRecordSetsDelete = DNSResourceRecordSetsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Identifies the managed zone addressed by this request. Can be the managed zone name or ID.
+    managedZone :: Core.Text,
+    -- | Fully qualified domain name.
+    name :: Core.Text,
+    -- | Identifies the project addressed by this request.
+    project :: Core.Text,
+    -- | RRSet type.
+    type' :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'DNSResourceRecordSetsDelete' with the minimum fields required to make a request.
+newDNSResourceRecordSetsDelete ::
+  -- |  Identifies the managed zone addressed by this request. Can be the managed zone name or ID. See 'managedZone'.
+  Core.Text ->
+  -- |  Fully qualified domain name. See 'name'.
+  Core.Text ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  -- |  RRSet type. See 'type''.
+  Core.Text ->
+  DNSResourceRecordSetsDelete
+newDNSResourceRecordSetsDelete managedZone name project type' =
+  DNSResourceRecordSetsDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      clientOperationId = Core.Nothing,
+      location = "global",
+      managedZone = managedZone,
+      name = name,
+      project = project,
+      type' = type',
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSResourceRecordSetsDelete where
+  type Rs DNSResourceRecordSetsDelete = ()
+  type
+    Scopes DNSResourceRecordSetsDelete =
+      '[CloudPlatform'FullControl, Ndev'Clouddns'Readwrite]
+  requestClient DNSResourceRecordSetsDelete {..} =
+    go
+      project
+      location
+      managedZone
+      name
+      type'
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSResourceRecordSetsDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/ResourceRecordSets/Get.hs b/gen/Gogol/DNS/ResourceRecordSets/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/ResourceRecordSets/Get.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.DNS.ResourceRecordSets.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)
+--
+-- Fetches the representation of an existing ResourceRecordSet.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.resourceRecordSets.get@.
+module Gogol.DNS.ResourceRecordSets.Get
+  ( -- * Resource
+    DNSResourceRecordSetsGetResource,
+
+    -- ** Constructing a Request
+    DNSResourceRecordSetsGet (..),
+    newDNSResourceRecordSetsGet,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.resourceRecordSets.get@ method which the
+-- 'DNSResourceRecordSetsGet' request conforms to.
+type DNSResourceRecordSetsGetResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "managedZones"
+    Core.:> Core.Capture "managedZone" Core.Text
+    Core.:> "rrsets"
+    Core.:> Core.Capture "name" Core.Text
+    Core.:> Core.Capture "type" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" 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] ResourceRecordSet
+
+-- | Fetches the representation of an existing ResourceRecordSet.
+--
+-- /See:/ 'newDNSResourceRecordSetsGet' smart constructor.
+data DNSResourceRecordSetsGet = DNSResourceRecordSetsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Identifies the managed zone addressed by this request. Can be the managed zone name or ID.
+    managedZone :: Core.Text,
+    -- | Fully qualified domain name.
+    name :: Core.Text,
+    -- | Identifies the project addressed by this request.
+    project :: Core.Text,
+    -- | RRSet type.
+    type' :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'DNSResourceRecordSetsGet' with the minimum fields required to make a request.
+newDNSResourceRecordSetsGet ::
+  -- |  Identifies the managed zone addressed by this request. Can be the managed zone name or ID. See 'managedZone'.
+  Core.Text ->
+  -- |  Fully qualified domain name. See 'name'.
+  Core.Text ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  -- |  RRSet type. See 'type''.
+  Core.Text ->
+  DNSResourceRecordSetsGet
+newDNSResourceRecordSetsGet managedZone name project type' =
+  DNSResourceRecordSetsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      clientOperationId = Core.Nothing,
+      location = "global",
+      managedZone = managedZone,
+      name = name,
+      project = project,
+      type' = type',
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSResourceRecordSetsGet where
+  type Rs DNSResourceRecordSetsGet = ResourceRecordSet
+  type
+    Scopes DNSResourceRecordSetsGet =
+      '[ CloudPlatform'FullControl,
+         CloudPlatform'ReadOnly,
+         Ndev'Clouddns'Readonly,
+         Ndev'Clouddns'Readwrite
+       ]
+  requestClient DNSResourceRecordSetsGet {..} =
+    go
+      project
+      location
+      managedZone
+      name
+      type'
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSResourceRecordSetsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/ResourceRecordSets/List.hs b/gen/Gogol/DNS/ResourceRecordSets/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/ResourceRecordSets/List.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.DNS.ResourceRecordSets.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)
+--
+-- Enumerates ResourceRecordSets that you have created but not yet deleted.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.resourceRecordSets.list@.
+module Gogol.DNS.ResourceRecordSets.List
+  ( -- * Resource
+    DNSResourceRecordSetsListResource,
+
+    -- ** Constructing a Request
+    DNSResourceRecordSetsList (..),
+    newDNSResourceRecordSetsList,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.resourceRecordSets.list@ method which the
+-- 'DNSResourceRecordSetsList' request conforms to.
+type DNSResourceRecordSetsListResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "managedZones"
+    Core.:> Core.Capture "managedZone" Core.Text
+    Core.:> "rrsets"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Int32
+    Core.:> Core.QueryParam "name" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "type" 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] ResourceRecordSetsListResponse
+
+-- | Enumerates ResourceRecordSets that you have created but not yet deleted.
+--
+-- /See:/ 'newDNSResourceRecordSetsList' smart constructor.
+data DNSResourceRecordSetsList = DNSResourceRecordSetsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Identifies the managed zone addressed by this request. Can be the managed zone name or ID.
+    managedZone :: Core.Text,
+    -- | Optional. Maximum number of results to be returned. If unspecified, the server decides how many results to return.
+    maxResults :: (Core.Maybe Core.Int32),
+    -- | Restricts the list to return only records with this fully qualified domain name.
+    name :: (Core.Maybe Core.Text),
+    -- | Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Identifies the project addressed by this request.
+    project :: Core.Text,
+    -- | Restricts the list to return only records of this type. If present, the \"name\" parameter must also be present.
+    type' :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'DNSResourceRecordSetsList' with the minimum fields required to make a request.
+newDNSResourceRecordSetsList ::
+  -- |  Identifies the managed zone addressed by this request. Can be the managed zone name or ID. See 'managedZone'.
+  Core.Text ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  DNSResourceRecordSetsList
+newDNSResourceRecordSetsList managedZone project =
+  DNSResourceRecordSetsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      location = "global",
+      managedZone = managedZone,
+      maxResults = Core.Nothing,
+      name = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      type' = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSResourceRecordSetsList where
+  type Rs DNSResourceRecordSetsList = ResourceRecordSetsListResponse
+  type
+    Scopes DNSResourceRecordSetsList =
+      '[ CloudPlatform'FullControl,
+         CloudPlatform'ReadOnly,
+         Ndev'Clouddns'Readonly,
+         Ndev'Clouddns'Readwrite
+       ]
+  requestClient DNSResourceRecordSetsList {..} =
+    go
+      project
+      location
+      managedZone
+      xgafv
+      accessToken
+      callback
+      maxResults
+      name
+      pageToken
+      type'
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSResourceRecordSetsListResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/ResourceRecordSets/Patch.hs b/gen/Gogol/DNS/ResourceRecordSets/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/ResourceRecordSets/Patch.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.DNS.ResourceRecordSets.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)
+--
+-- Applies a partial update to an existing ResourceRecordSet.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.resourceRecordSets.patch@.
+module Gogol.DNS.ResourceRecordSets.Patch
+  ( -- * Resource
+    DNSResourceRecordSetsPatchResource,
+
+    -- ** Constructing a Request
+    DNSResourceRecordSetsPatch (..),
+    newDNSResourceRecordSetsPatch,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.resourceRecordSets.patch@ method which the
+-- 'DNSResourceRecordSetsPatch' request conforms to.
+type DNSResourceRecordSetsPatchResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "managedZones"
+    Core.:> Core.Capture "managedZone" Core.Text
+    Core.:> "rrsets"
+    Core.:> Core.Capture "name" Core.Text
+    Core.:> Core.Capture "type" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ResourceRecordSet
+    Core.:> Core.Patch '[Core.JSON] ResourceRecordSet
+
+-- | Applies a partial update to an existing ResourceRecordSet.
+--
+-- /See:/ 'newDNSResourceRecordSetsPatch' smart constructor.
+data DNSResourceRecordSetsPatch = DNSResourceRecordSetsPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Identifies the managed zone addressed by this request. Can be the managed zone name or ID.
+    managedZone :: Core.Text,
+    -- | Fully qualified domain name.
+    name :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: ResourceRecordSet,
+    -- | Identifies the project addressed by this request.
+    project :: Core.Text,
+    -- | RRSet type.
+    type' :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'DNSResourceRecordSetsPatch' with the minimum fields required to make a request.
+newDNSResourceRecordSetsPatch ::
+  -- |  Identifies the managed zone addressed by this request. Can be the managed zone name or ID. See 'managedZone'.
+  Core.Text ->
+  -- |  Fully qualified domain name. See 'name'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  ResourceRecordSet ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  -- |  RRSet type. See 'type''.
+  Core.Text ->
+  DNSResourceRecordSetsPatch
+newDNSResourceRecordSetsPatch
+  managedZone
+  name
+  payload
+  project
+  type' =
+    DNSResourceRecordSetsPatch
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        clientOperationId = Core.Nothing,
+        location = "global",
+        managedZone = managedZone,
+        name = name,
+        payload = payload,
+        project = project,
+        type' = type',
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest DNSResourceRecordSetsPatch where
+  type Rs DNSResourceRecordSetsPatch = ResourceRecordSet
+  type
+    Scopes DNSResourceRecordSetsPatch =
+      '[CloudPlatform'FullControl, Ndev'Clouddns'Readwrite]
+  requestClient DNSResourceRecordSetsPatch {..} =
+    go
+      project
+      location
+      managedZone
+      name
+      type'
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSResourceRecordSetsPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/ResponsePolicies/Create.hs b/gen/Gogol/DNS/ResponsePolicies/Create.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/ResponsePolicies/Create.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.DNS.ResponsePolicies.Create
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.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 Response Policy
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.responsePolicies.create@.
+module Gogol.DNS.ResponsePolicies.Create
+  ( -- * Resource
+    DNSResponsePoliciesCreateResource,
+
+    -- ** Constructing a Request
+    DNSResponsePoliciesCreate (..),
+    newDNSResponsePoliciesCreate,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.responsePolicies.create@ method which the
+-- 'DNSResponsePoliciesCreate' request conforms to.
+type DNSResponsePoliciesCreateResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "responsePolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ResponsePolicy
+    Core.:> Core.Post '[Core.JSON] ResponsePolicy
+
+-- | Creates a new Response Policy
+--
+-- /See:/ 'newDNSResponsePoliciesCreate' smart constructor.
+data DNSResponsePoliciesCreate = DNSResponsePoliciesCreate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource, only applicable in the v APIs. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: ResponsePolicy,
+    -- | Identifies the project addressed by 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 'DNSResponsePoliciesCreate' with the minimum fields required to make a request.
+newDNSResponsePoliciesCreate ::
+  -- |  Multipart request metadata. See 'payload'.
+  ResponsePolicy ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  DNSResponsePoliciesCreate
+newDNSResponsePoliciesCreate payload project =
+  DNSResponsePoliciesCreate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      clientOperationId = Core.Nothing,
+      location = "global",
+      payload = payload,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSResponsePoliciesCreate where
+  type Rs DNSResponsePoliciesCreate = ResponsePolicy
+  type
+    Scopes DNSResponsePoliciesCreate =
+      '[CloudPlatform'FullControl, Ndev'Clouddns'Readwrite]
+  requestClient DNSResponsePoliciesCreate {..} =
+    go
+      project
+      location
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSResponsePoliciesCreateResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/ResponsePolicies/Delete.hs b/gen/Gogol/DNS/ResponsePolicies/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/ResponsePolicies/Delete.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.DNS.ResponsePolicies.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 a previously created Response Policy. Fails if the response policy is non-empty or still being referenced by a network.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.responsePolicies.delete@.
+module Gogol.DNS.ResponsePolicies.Delete
+  ( -- * Resource
+    DNSResponsePoliciesDeleteResource,
+
+    -- ** Constructing a Request
+    DNSResponsePoliciesDelete (..),
+    newDNSResponsePoliciesDelete,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.responsePolicies.delete@ method which the
+-- 'DNSResponsePoliciesDelete' request conforms to.
+type DNSResponsePoliciesDeleteResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "responsePolicies"
+    Core.:> Core.Capture "responsePolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" 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 a previously created Response Policy. Fails if the response policy is non-empty or still being referenced by a network.
+--
+-- /See:/ 'newDNSResponsePoliciesDelete' smart constructor.
+data DNSResponsePoliciesDelete = DNSResponsePoliciesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Identifies the project addressed by this request.
+    project :: Core.Text,
+    -- | User assigned name of the Response Policy addressed by this request.
+    responsePolicy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'DNSResponsePoliciesDelete' with the minimum fields required to make a request.
+newDNSResponsePoliciesDelete ::
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  -- |  User assigned name of the Response Policy addressed by this request. See 'responsePolicy'.
+  Core.Text ->
+  DNSResponsePoliciesDelete
+newDNSResponsePoliciesDelete project responsePolicy =
+  DNSResponsePoliciesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      clientOperationId = Core.Nothing,
+      location = "global",
+      project = project,
+      responsePolicy = responsePolicy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSResponsePoliciesDelete where
+  type Rs DNSResponsePoliciesDelete = ()
+  type
+    Scopes DNSResponsePoliciesDelete =
+      '[CloudPlatform'FullControl, Ndev'Clouddns'Readwrite]
+  requestClient DNSResponsePoliciesDelete {..} =
+    go
+      project
+      location
+      responsePolicy
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSResponsePoliciesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/ResponsePolicies/Get.hs b/gen/Gogol/DNS/ResponsePolicies/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/ResponsePolicies/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.DNS.ResponsePolicies.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)
+--
+-- Fetches the representation of an existing Response Policy.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.responsePolicies.get@.
+module Gogol.DNS.ResponsePolicies.Get
+  ( -- * Resource
+    DNSResponsePoliciesGetResource,
+
+    -- ** Constructing a Request
+    DNSResponsePoliciesGet (..),
+    newDNSResponsePoliciesGet,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.responsePolicies.get@ method which the
+-- 'DNSResponsePoliciesGet' request conforms to.
+type DNSResponsePoliciesGetResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "responsePolicies"
+    Core.:> Core.Capture "responsePolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" 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] ResponsePolicy
+
+-- | Fetches the representation of an existing Response Policy.
+--
+-- /See:/ 'newDNSResponsePoliciesGet' smart constructor.
+data DNSResponsePoliciesGet = DNSResponsePoliciesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Identifies the project addressed by this request.
+    project :: Core.Text,
+    -- | User assigned name of the Response Policy addressed by this request.
+    responsePolicy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'DNSResponsePoliciesGet' with the minimum fields required to make a request.
+newDNSResponsePoliciesGet ::
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  -- |  User assigned name of the Response Policy addressed by this request. See 'responsePolicy'.
+  Core.Text ->
+  DNSResponsePoliciesGet
+newDNSResponsePoliciesGet project responsePolicy =
+  DNSResponsePoliciesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      clientOperationId = Core.Nothing,
+      location = "global",
+      project = project,
+      responsePolicy = responsePolicy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSResponsePoliciesGet where
+  type Rs DNSResponsePoliciesGet = ResponsePolicy
+  type
+    Scopes DNSResponsePoliciesGet =
+      '[ CloudPlatform'FullControl,
+         CloudPlatform'ReadOnly,
+         Ndev'Clouddns'Readonly,
+         Ndev'Clouddns'Readwrite
+       ]
+  requestClient DNSResponsePoliciesGet {..} =
+    go
+      project
+      location
+      responsePolicy
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSResponsePoliciesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/ResponsePolicies/List.hs b/gen/Gogol/DNS/ResponsePolicies/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/ResponsePolicies/List.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.DNS.ResponsePolicies.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)
+--
+-- Enumerates all Response Policies associated with a project.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.responsePolicies.list@.
+module Gogol.DNS.ResponsePolicies.List
+  ( -- * Resource
+    DNSResponsePoliciesListResource,
+
+    -- ** Constructing a Request
+    DNSResponsePoliciesList (..),
+    newDNSResponsePoliciesList,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.responsePolicies.list@ method which the
+-- 'DNSResponsePoliciesList' request conforms to.
+type DNSResponsePoliciesListResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "responsePolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Int32
+    Core.:> Core.QueryParam "pageToken" 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] ResponsePoliciesListResponse
+
+-- | Enumerates all Response Policies associated with a project.
+--
+-- /See:/ 'newDNSResponsePoliciesList' smart constructor.
+data DNSResponsePoliciesList = DNSResponsePoliciesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Optional. Maximum number of results to be returned. If unspecified, the server decides how many results to return.
+    maxResults :: (Core.Maybe Core.Int32),
+    -- | Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Identifies the project addressed by 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 'DNSResponsePoliciesList' with the minimum fields required to make a request.
+newDNSResponsePoliciesList ::
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  DNSResponsePoliciesList
+newDNSResponsePoliciesList project =
+  DNSResponsePoliciesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      location = "global",
+      maxResults = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSResponsePoliciesList where
+  type Rs DNSResponsePoliciesList = ResponsePoliciesListResponse
+  type
+    Scopes DNSResponsePoliciesList =
+      '[ CloudPlatform'FullControl,
+         CloudPlatform'ReadOnly,
+         Ndev'Clouddns'Readonly,
+         Ndev'Clouddns'Readwrite
+       ]
+  requestClient DNSResponsePoliciesList {..} =
+    go
+      project
+      location
+      xgafv
+      accessToken
+      callback
+      maxResults
+      pageToken
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSResponsePoliciesListResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/ResponsePolicies/Patch.hs b/gen/Gogol/DNS/ResponsePolicies/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/ResponsePolicies/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.DNS.ResponsePolicies.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)
+--
+-- Applies a partial update to an existing Response Policy.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.responsePolicies.patch@.
+module Gogol.DNS.ResponsePolicies.Patch
+  ( -- * Resource
+    DNSResponsePoliciesPatchResource,
+
+    -- ** Constructing a Request
+    DNSResponsePoliciesPatch (..),
+    newDNSResponsePoliciesPatch,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.responsePolicies.patch@ method which the
+-- 'DNSResponsePoliciesPatch' request conforms to.
+type DNSResponsePoliciesPatchResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "responsePolicies"
+    Core.:> Core.Capture "responsePolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ResponsePolicy
+    Core.:> Core.Patch '[Core.JSON] ResponsePoliciesPatchResponse
+
+-- | Applies a partial update to an existing Response Policy.
+--
+-- /See:/ 'newDNSResponsePoliciesPatch' smart constructor.
+data DNSResponsePoliciesPatch = DNSResponsePoliciesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: ResponsePolicy,
+    -- | Identifies the project addressed by this request.
+    project :: Core.Text,
+    -- | User assigned name of the Respones Policy addressed by this request.
+    responsePolicy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'DNSResponsePoliciesPatch' with the minimum fields required to make a request.
+newDNSResponsePoliciesPatch ::
+  -- |  Multipart request metadata. See 'payload'.
+  ResponsePolicy ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  -- |  User assigned name of the Respones Policy addressed by this request. See 'responsePolicy'.
+  Core.Text ->
+  DNSResponsePoliciesPatch
+newDNSResponsePoliciesPatch payload project responsePolicy =
+  DNSResponsePoliciesPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      clientOperationId = Core.Nothing,
+      location = "global",
+      payload = payload,
+      project = project,
+      responsePolicy = responsePolicy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSResponsePoliciesPatch where
+  type Rs DNSResponsePoliciesPatch = ResponsePoliciesPatchResponse
+  type
+    Scopes DNSResponsePoliciesPatch =
+      '[CloudPlatform'FullControl, Ndev'Clouddns'Readwrite]
+  requestClient DNSResponsePoliciesPatch {..} =
+    go
+      project
+      location
+      responsePolicy
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSResponsePoliciesPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/ResponsePolicies/Update.hs b/gen/Gogol/DNS/ResponsePolicies/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/ResponsePolicies/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.DNS.ResponsePolicies.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 existing Response Policy.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.responsePolicies.update@.
+module Gogol.DNS.ResponsePolicies.Update
+  ( -- * Resource
+    DNSResponsePoliciesUpdateResource,
+
+    -- ** Constructing a Request
+    DNSResponsePoliciesUpdate (..),
+    newDNSResponsePoliciesUpdate,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.responsePolicies.update@ method which the
+-- 'DNSResponsePoliciesUpdate' request conforms to.
+type DNSResponsePoliciesUpdateResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "responsePolicies"
+    Core.:> Core.Capture "responsePolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ResponsePolicy
+    Core.:> Core.Put '[Core.JSON] ResponsePoliciesUpdateResponse
+
+-- | Updates an existing Response Policy.
+--
+-- /See:/ 'newDNSResponsePoliciesUpdate' smart constructor.
+data DNSResponsePoliciesUpdate = DNSResponsePoliciesUpdate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: ResponsePolicy,
+    -- | Identifies the project addressed by this request.
+    project :: Core.Text,
+    -- | User assigned name of the Response Policy addressed by this request.
+    responsePolicy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'DNSResponsePoliciesUpdate' with the minimum fields required to make a request.
+newDNSResponsePoliciesUpdate ::
+  -- |  Multipart request metadata. See 'payload'.
+  ResponsePolicy ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  -- |  User assigned name of the Response Policy addressed by this request. See 'responsePolicy'.
+  Core.Text ->
+  DNSResponsePoliciesUpdate
+newDNSResponsePoliciesUpdate payload project responsePolicy =
+  DNSResponsePoliciesUpdate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      clientOperationId = Core.Nothing,
+      location = "global",
+      payload = payload,
+      project = project,
+      responsePolicy = responsePolicy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSResponsePoliciesUpdate where
+  type Rs DNSResponsePoliciesUpdate = ResponsePoliciesUpdateResponse
+  type
+    Scopes DNSResponsePoliciesUpdate =
+      '[CloudPlatform'FullControl, Ndev'Clouddns'Readwrite]
+  requestClient DNSResponsePoliciesUpdate {..} =
+    go
+      project
+      location
+      responsePolicy
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSResponsePoliciesUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/ResponsePolicyRules/Create.hs b/gen/Gogol/DNS/ResponsePolicyRules/Create.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/ResponsePolicyRules/Create.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.DNS.ResponsePolicyRules.Create
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.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 Response Policy Rule.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.responsePolicyRules.create@.
+module Gogol.DNS.ResponsePolicyRules.Create
+  ( -- * Resource
+    DNSResponsePolicyRulesCreateResource,
+
+    -- ** Constructing a Request
+    DNSResponsePolicyRulesCreate (..),
+    newDNSResponsePolicyRulesCreate,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.responsePolicyRules.create@ method which the
+-- 'DNSResponsePolicyRulesCreate' request conforms to.
+type DNSResponsePolicyRulesCreateResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "responsePolicies"
+    Core.:> Core.Capture "responsePolicy" Core.Text
+    Core.:> "rules"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ResponsePolicyRule
+    Core.:> Core.Post '[Core.JSON] ResponsePolicyRule
+
+-- | Creates a new Response Policy Rule.
+--
+-- /See:/ 'newDNSResponsePolicyRulesCreate' smart constructor.
+data DNSResponsePolicyRulesCreate = DNSResponsePolicyRulesCreate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: ResponsePolicyRule,
+    -- | Identifies the project addressed by this request.
+    project :: Core.Text,
+    -- | User assigned name of the Response Policy containing the Response Policy Rule.
+    responsePolicy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'DNSResponsePolicyRulesCreate' with the minimum fields required to make a request.
+newDNSResponsePolicyRulesCreate ::
+  -- |  Multipart request metadata. See 'payload'.
+  ResponsePolicyRule ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  -- |  User assigned name of the Response Policy containing the Response Policy Rule. See 'responsePolicy'.
+  Core.Text ->
+  DNSResponsePolicyRulesCreate
+newDNSResponsePolicyRulesCreate payload project responsePolicy =
+  DNSResponsePolicyRulesCreate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      clientOperationId = Core.Nothing,
+      location = "global",
+      payload = payload,
+      project = project,
+      responsePolicy = responsePolicy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSResponsePolicyRulesCreate where
+  type Rs DNSResponsePolicyRulesCreate = ResponsePolicyRule
+  type
+    Scopes DNSResponsePolicyRulesCreate =
+      '[CloudPlatform'FullControl, Ndev'Clouddns'Readwrite]
+  requestClient DNSResponsePolicyRulesCreate {..} =
+    go
+      project
+      location
+      responsePolicy
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSResponsePolicyRulesCreateResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/ResponsePolicyRules/Delete.hs b/gen/Gogol/DNS/ResponsePolicyRules/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/ResponsePolicyRules/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.DNS.ResponsePolicyRules.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 a previously created Response Policy Rule.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.responsePolicyRules.delete@.
+module Gogol.DNS.ResponsePolicyRules.Delete
+  ( -- * Resource
+    DNSResponsePolicyRulesDeleteResource,
+
+    -- ** Constructing a Request
+    DNSResponsePolicyRulesDelete (..),
+    newDNSResponsePolicyRulesDelete,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.responsePolicyRules.delete@ method which the
+-- 'DNSResponsePolicyRulesDelete' request conforms to.
+type DNSResponsePolicyRulesDeleteResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "responsePolicies"
+    Core.:> Core.Capture "responsePolicy" Core.Text
+    Core.:> "rules"
+    Core.:> Core.Capture "responsePolicyRule" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" 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 a previously created Response Policy Rule.
+--
+-- /See:/ 'newDNSResponsePolicyRulesDelete' smart constructor.
+data DNSResponsePolicyRulesDelete = DNSResponsePolicyRulesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Identifies the project addressed by this request.
+    project :: Core.Text,
+    -- | User assigned name of the Response Policy containing the Response Policy Rule.
+    responsePolicy :: Core.Text,
+    -- | User assigned name of the Response Policy Rule addressed by this request.
+    responsePolicyRule :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'DNSResponsePolicyRulesDelete' with the minimum fields required to make a request.
+newDNSResponsePolicyRulesDelete ::
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  -- |  User assigned name of the Response Policy containing the Response Policy Rule. See 'responsePolicy'.
+  Core.Text ->
+  -- |  User assigned name of the Response Policy Rule addressed by this request. See 'responsePolicyRule'.
+  Core.Text ->
+  DNSResponsePolicyRulesDelete
+newDNSResponsePolicyRulesDelete
+  project
+  responsePolicy
+  responsePolicyRule =
+    DNSResponsePolicyRulesDelete
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        clientOperationId = Core.Nothing,
+        location = "global",
+        project = project,
+        responsePolicy = responsePolicy,
+        responsePolicyRule = responsePolicyRule,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest DNSResponsePolicyRulesDelete where
+  type Rs DNSResponsePolicyRulesDelete = ()
+  type
+    Scopes DNSResponsePolicyRulesDelete =
+      '[CloudPlatform'FullControl, Ndev'Clouddns'Readwrite]
+  requestClient DNSResponsePolicyRulesDelete {..} =
+    go
+      project
+      location
+      responsePolicy
+      responsePolicyRule
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSResponsePolicyRulesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/ResponsePolicyRules/Get.hs b/gen/Gogol/DNS/ResponsePolicyRules/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/ResponsePolicyRules/Get.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.DNS.ResponsePolicyRules.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)
+--
+-- Fetches the representation of an existing Response Policy Rule.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.responsePolicyRules.get@.
+module Gogol.DNS.ResponsePolicyRules.Get
+  ( -- * Resource
+    DNSResponsePolicyRulesGetResource,
+
+    -- ** Constructing a Request
+    DNSResponsePolicyRulesGet (..),
+    newDNSResponsePolicyRulesGet,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.responsePolicyRules.get@ method which the
+-- 'DNSResponsePolicyRulesGet' request conforms to.
+type DNSResponsePolicyRulesGetResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "responsePolicies"
+    Core.:> Core.Capture "responsePolicy" Core.Text
+    Core.:> "rules"
+    Core.:> Core.Capture "responsePolicyRule" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" 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] ResponsePolicyRule
+
+-- | Fetches the representation of an existing Response Policy Rule.
+--
+-- /See:/ 'newDNSResponsePolicyRulesGet' smart constructor.
+data DNSResponsePolicyRulesGet = DNSResponsePolicyRulesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Identifies the project addressed by this request.
+    project :: Core.Text,
+    -- | User assigned name of the Response Policy containing the Response Policy Rule.
+    responsePolicy :: Core.Text,
+    -- | User assigned name of the Response Policy Rule addressed by this request.
+    responsePolicyRule :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'DNSResponsePolicyRulesGet' with the minimum fields required to make a request.
+newDNSResponsePolicyRulesGet ::
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  -- |  User assigned name of the Response Policy containing the Response Policy Rule. See 'responsePolicy'.
+  Core.Text ->
+  -- |  User assigned name of the Response Policy Rule addressed by this request. See 'responsePolicyRule'.
+  Core.Text ->
+  DNSResponsePolicyRulesGet
+newDNSResponsePolicyRulesGet
+  project
+  responsePolicy
+  responsePolicyRule =
+    DNSResponsePolicyRulesGet
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        clientOperationId = Core.Nothing,
+        location = "global",
+        project = project,
+        responsePolicy = responsePolicy,
+        responsePolicyRule = responsePolicyRule,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest DNSResponsePolicyRulesGet where
+  type Rs DNSResponsePolicyRulesGet = ResponsePolicyRule
+  type
+    Scopes DNSResponsePolicyRulesGet =
+      '[ CloudPlatform'FullControl,
+         CloudPlatform'ReadOnly,
+         Ndev'Clouddns'Readonly,
+         Ndev'Clouddns'Readwrite
+       ]
+  requestClient DNSResponsePolicyRulesGet {..} =
+    go
+      project
+      location
+      responsePolicy
+      responsePolicyRule
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSResponsePolicyRulesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/ResponsePolicyRules/List.hs b/gen/Gogol/DNS/ResponsePolicyRules/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/ResponsePolicyRules/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.DNS.ResponsePolicyRules.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)
+--
+-- Enumerates all Response Policy Rules associated with a project.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.responsePolicyRules.list@.
+module Gogol.DNS.ResponsePolicyRules.List
+  ( -- * Resource
+    DNSResponsePolicyRulesListResource,
+
+    -- ** Constructing a Request
+    DNSResponsePolicyRulesList (..),
+    newDNSResponsePolicyRulesList,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.responsePolicyRules.list@ method which the
+-- 'DNSResponsePolicyRulesList' request conforms to.
+type DNSResponsePolicyRulesListResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "responsePolicies"
+    Core.:> Core.Capture "responsePolicy" Core.Text
+    Core.:> "rules"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Int32
+    Core.:> Core.QueryParam "pageToken" 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] ResponsePolicyRulesListResponse
+
+-- | Enumerates all Response Policy Rules associated with a project.
+--
+-- /See:/ 'newDNSResponsePolicyRulesList' smart constructor.
+data DNSResponsePolicyRulesList = DNSResponsePolicyRulesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Optional. Maximum number of results to be returned. If unspecified, the server decides how many results to return.
+    maxResults :: (Core.Maybe Core.Int32),
+    -- | Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Identifies the project addressed by this request.
+    project :: Core.Text,
+    -- | User assigned name of the Response Policy to list.
+    responsePolicy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'DNSResponsePolicyRulesList' with the minimum fields required to make a request.
+newDNSResponsePolicyRulesList ::
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  -- |  User assigned name of the Response Policy to list. See 'responsePolicy'.
+  Core.Text ->
+  DNSResponsePolicyRulesList
+newDNSResponsePolicyRulesList project responsePolicy =
+  DNSResponsePolicyRulesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      location = "global",
+      maxResults = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      responsePolicy = responsePolicy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest DNSResponsePolicyRulesList where
+  type
+    Rs DNSResponsePolicyRulesList =
+      ResponsePolicyRulesListResponse
+  type
+    Scopes DNSResponsePolicyRulesList =
+      '[ CloudPlatform'FullControl,
+         CloudPlatform'ReadOnly,
+         Ndev'Clouddns'Readonly,
+         Ndev'Clouddns'Readwrite
+       ]
+  requestClient DNSResponsePolicyRulesList {..} =
+    go
+      project
+      location
+      responsePolicy
+      xgafv
+      accessToken
+      callback
+      maxResults
+      pageToken
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSResponsePolicyRulesListResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/ResponsePolicyRules/Patch.hs b/gen/Gogol/DNS/ResponsePolicyRules/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/ResponsePolicyRules/Patch.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.DNS.ResponsePolicyRules.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)
+--
+-- Applies a partial update to an existing Response Policy Rule.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.responsePolicyRules.patch@.
+module Gogol.DNS.ResponsePolicyRules.Patch
+  ( -- * Resource
+    DNSResponsePolicyRulesPatchResource,
+
+    -- ** Constructing a Request
+    DNSResponsePolicyRulesPatch (..),
+    newDNSResponsePolicyRulesPatch,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.responsePolicyRules.patch@ method which the
+-- 'DNSResponsePolicyRulesPatch' request conforms to.
+type DNSResponsePolicyRulesPatchResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "responsePolicies"
+    Core.:> Core.Capture "responsePolicy" Core.Text
+    Core.:> "rules"
+    Core.:> Core.Capture "responsePolicyRule" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ResponsePolicyRule
+    Core.:> Core.Patch '[Core.JSON] ResponsePolicyRulesPatchResponse
+
+-- | Applies a partial update to an existing Response Policy Rule.
+--
+-- /See:/ 'newDNSResponsePolicyRulesPatch' smart constructor.
+data DNSResponsePolicyRulesPatch = DNSResponsePolicyRulesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: ResponsePolicyRule,
+    -- | Identifies the project addressed by this request.
+    project :: Core.Text,
+    -- | User assigned name of the Response Policy containing the Response Policy Rule.
+    responsePolicy :: Core.Text,
+    -- | User assigned name of the Response Policy Rule addressed by this request.
+    responsePolicyRule :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'DNSResponsePolicyRulesPatch' with the minimum fields required to make a request.
+newDNSResponsePolicyRulesPatch ::
+  -- |  Multipart request metadata. See 'payload'.
+  ResponsePolicyRule ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  -- |  User assigned name of the Response Policy containing the Response Policy Rule. See 'responsePolicy'.
+  Core.Text ->
+  -- |  User assigned name of the Response Policy Rule addressed by this request. See 'responsePolicyRule'.
+  Core.Text ->
+  DNSResponsePolicyRulesPatch
+newDNSResponsePolicyRulesPatch
+  payload
+  project
+  responsePolicy
+  responsePolicyRule =
+    DNSResponsePolicyRulesPatch
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        clientOperationId = Core.Nothing,
+        location = "global",
+        payload = payload,
+        project = project,
+        responsePolicy = responsePolicy,
+        responsePolicyRule = responsePolicyRule,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest DNSResponsePolicyRulesPatch where
+  type
+    Rs DNSResponsePolicyRulesPatch =
+      ResponsePolicyRulesPatchResponse
+  type
+    Scopes DNSResponsePolicyRulesPatch =
+      '[CloudPlatform'FullControl, Ndev'Clouddns'Readwrite]
+  requestClient DNSResponsePolicyRulesPatch {..} =
+    go
+      project
+      location
+      responsePolicy
+      responsePolicyRule
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSResponsePolicyRulesPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/ResponsePolicyRules/Update.hs b/gen/Gogol/DNS/ResponsePolicyRules/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/ResponsePolicyRules/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.DNS.ResponsePolicyRules.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 existing Response Policy Rule.
+--
+-- /See:/ <https://cloud.google.com/dns/docs Cloud DNS API Reference> for @dns.responsePolicyRules.update@.
+module Gogol.DNS.ResponsePolicyRules.Update
+  ( -- * Resource
+    DNSResponsePolicyRulesUpdateResource,
+
+    -- ** Constructing a Request
+    DNSResponsePolicyRulesUpdate (..),
+    newDNSResponsePolicyRulesUpdate,
+  )
+where
+
+import Gogol.DNS.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @dns.responsePolicyRules.update@ method which the
+-- 'DNSResponsePolicyRulesUpdate' request conforms to.
+type DNSResponsePolicyRulesUpdateResource =
+  "dns"
+    Core.:> "v2"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "locations"
+    Core.:> Core.Capture "location" Core.Text
+    Core.:> "responsePolicies"
+    Core.:> Core.Capture "responsePolicy" Core.Text
+    Core.:> "rules"
+    Core.:> Core.Capture "responsePolicyRule" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "clientOperationId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ResponsePolicyRule
+    Core.:> Core.Put '[Core.JSON] ResponsePolicyRulesUpdateResponse
+
+-- | Updates an existing Response Policy Rule.
+--
+-- /See:/ 'newDNSResponsePolicyRulesUpdate' smart constructor.
+data DNSResponsePolicyRulesUpdate = DNSResponsePolicyRulesUpdate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+    clientOperationId :: (Core.Maybe Core.Text),
+    -- | Specifies the location of the resource. This information will be used for routing and will be part of the resource name.
+    location :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: ResponsePolicyRule,
+    -- | Identifies the project addressed by this request.
+    project :: Core.Text,
+    -- | User assigned name of the Response Policy containing the Response Policy Rule.
+    responsePolicy :: Core.Text,
+    -- | User assigned name of the Response Policy Rule addressed by this request.
+    responsePolicyRule :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'DNSResponsePolicyRulesUpdate' with the minimum fields required to make a request.
+newDNSResponsePolicyRulesUpdate ::
+  -- |  Multipart request metadata. See 'payload'.
+  ResponsePolicyRule ->
+  -- |  Identifies the project addressed by this request. See 'project'.
+  Core.Text ->
+  -- |  User assigned name of the Response Policy containing the Response Policy Rule. See 'responsePolicy'.
+  Core.Text ->
+  -- |  User assigned name of the Response Policy Rule addressed by this request. See 'responsePolicyRule'.
+  Core.Text ->
+  DNSResponsePolicyRulesUpdate
+newDNSResponsePolicyRulesUpdate
+  payload
+  project
+  responsePolicy
+  responsePolicyRule =
+    DNSResponsePolicyRulesUpdate
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        clientOperationId = Core.Nothing,
+        location = "global",
+        payload = payload,
+        project = project,
+        responsePolicy = responsePolicy,
+        responsePolicyRule = responsePolicyRule,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest DNSResponsePolicyRulesUpdate where
+  type
+    Rs DNSResponsePolicyRulesUpdate =
+      ResponsePolicyRulesUpdateResponse
+  type
+    Scopes DNSResponsePolicyRulesUpdate =
+      '[CloudPlatform'FullControl, Ndev'Clouddns'Readwrite]
+  requestClient DNSResponsePolicyRulesUpdate {..} =
+    go
+      project
+      location
+      responsePolicy
+      responsePolicyRule
+      xgafv
+      accessToken
+      callback
+      clientOperationId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      dNSService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy DNSResponsePolicyRulesUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/DNS/Types.hs b/gen/Gogol/DNS/Types.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/DNS/Types.hs
@@ -0,0 +1,325 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.DNS.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.DNS.Types
+  ( -- * Configuration
+    dNSService,
+
+    -- * OAuth Scopes
+    CloudPlatform'FullControl,
+    CloudPlatform'ReadOnly,
+    Ndev'Clouddns'Readonly,
+    Ndev'Clouddns'Readwrite,
+
+    -- * Types
+
+    -- ** Xgafv
+    Xgafv (..),
+
+    -- ** Change
+    Change (..),
+    newChange,
+
+    -- ** Change_Status
+    Change_Status (..),
+
+    -- ** ChangesListResponse
+    ChangesListResponse (..),
+    newChangesListResponse,
+
+    -- ** DnsKey
+    DnsKey (..),
+    newDnsKey,
+
+    -- ** DnsKey_Algorithm
+    DnsKey_Algorithm (..),
+
+    -- ** DnsKey_Type
+    DnsKey_Type (..),
+
+    -- ** DnsKeyDigest
+    DnsKeyDigest (..),
+    newDnsKeyDigest,
+
+    -- ** DnsKeyDigest_Type
+    DnsKeyDigest_Type (..),
+
+    -- ** DnsKeySpec
+    DnsKeySpec (..),
+    newDnsKeySpec,
+
+    -- ** DnsKeySpec_Algorithm
+    DnsKeySpec_Algorithm (..),
+
+    -- ** DnsKeySpec_KeyType
+    DnsKeySpec_KeyType (..),
+
+    -- ** DnsKeysListResponse
+    DnsKeysListResponse (..),
+    newDnsKeysListResponse,
+
+    -- ** ManagedZone
+    ManagedZone (..),
+    newManagedZone,
+
+    -- ** ManagedZone_Labels
+    ManagedZone_Labels (..),
+    newManagedZone_Labels,
+
+    -- ** ManagedZone_Visibility
+    ManagedZone_Visibility (..),
+
+    -- ** ManagedZoneCloudLoggingConfig
+    ManagedZoneCloudLoggingConfig (..),
+    newManagedZoneCloudLoggingConfig,
+
+    -- ** ManagedZoneDnsSecConfig
+    ManagedZoneDnsSecConfig (..),
+    newManagedZoneDnsSecConfig,
+
+    -- ** ManagedZoneDnsSecConfig_NonExistence
+    ManagedZoneDnsSecConfig_NonExistence (..),
+
+    -- ** ManagedZoneDnsSecConfig_State
+    ManagedZoneDnsSecConfig_State (..),
+
+    -- ** ManagedZoneForwardingConfig
+    ManagedZoneForwardingConfig (..),
+    newManagedZoneForwardingConfig,
+
+    -- ** ManagedZoneForwardingConfigNameServerTarget
+    ManagedZoneForwardingConfigNameServerTarget (..),
+    newManagedZoneForwardingConfigNameServerTarget,
+
+    -- ** ManagedZoneForwardingConfigNameServerTarget_ForwardingPath
+    ManagedZoneForwardingConfigNameServerTarget_ForwardingPath (..),
+
+    -- ** ManagedZoneOperationsListResponse
+    ManagedZoneOperationsListResponse (..),
+    newManagedZoneOperationsListResponse,
+
+    -- ** ManagedZonePeeringConfig
+    ManagedZonePeeringConfig (..),
+    newManagedZonePeeringConfig,
+
+    -- ** ManagedZonePeeringConfigTargetNetwork
+    ManagedZonePeeringConfigTargetNetwork (..),
+    newManagedZonePeeringConfigTargetNetwork,
+
+    -- ** ManagedZonePrivateVisibilityConfig
+    ManagedZonePrivateVisibilityConfig (..),
+    newManagedZonePrivateVisibilityConfig,
+
+    -- ** ManagedZonePrivateVisibilityConfigGKECluster
+    ManagedZonePrivateVisibilityConfigGKECluster (..),
+    newManagedZonePrivateVisibilityConfigGKECluster,
+
+    -- ** ManagedZonePrivateVisibilityConfigNetwork
+    ManagedZonePrivateVisibilityConfigNetwork (..),
+    newManagedZonePrivateVisibilityConfigNetwork,
+
+    -- ** ManagedZoneReverseLookupConfig
+    ManagedZoneReverseLookupConfig (..),
+    newManagedZoneReverseLookupConfig,
+
+    -- ** ManagedZoneServiceDirectoryConfig
+    ManagedZoneServiceDirectoryConfig (..),
+    newManagedZoneServiceDirectoryConfig,
+
+    -- ** ManagedZoneServiceDirectoryConfigNamespace
+    ManagedZoneServiceDirectoryConfigNamespace (..),
+    newManagedZoneServiceDirectoryConfigNamespace,
+
+    -- ** ManagedZonesListResponse
+    ManagedZonesListResponse (..),
+    newManagedZonesListResponse,
+
+    -- ** Operation
+    Operation (..),
+    newOperation,
+
+    -- ** Operation_Status
+    Operation_Status (..),
+
+    -- ** OperationDnsKeyContext
+    OperationDnsKeyContext (..),
+    newOperationDnsKeyContext,
+
+    -- ** OperationManagedZoneContext
+    OperationManagedZoneContext (..),
+    newOperationManagedZoneContext,
+
+    -- ** PoliciesListResponse
+    PoliciesListResponse (..),
+    newPoliciesListResponse,
+
+    -- ** PoliciesPatchResponse
+    PoliciesPatchResponse (..),
+    newPoliciesPatchResponse,
+
+    -- ** PoliciesUpdateResponse
+    PoliciesUpdateResponse (..),
+    newPoliciesUpdateResponse,
+
+    -- ** Policy
+    Policy (..),
+    newPolicy,
+
+    -- ** PolicyAlternativeNameServerConfig
+    PolicyAlternativeNameServerConfig (..),
+    newPolicyAlternativeNameServerConfig,
+
+    -- ** PolicyAlternativeNameServerConfigTargetNameServer
+    PolicyAlternativeNameServerConfigTargetNameServer (..),
+    newPolicyAlternativeNameServerConfigTargetNameServer,
+
+    -- ** PolicyAlternativeNameServerConfigTargetNameServer_ForwardingPath
+    PolicyAlternativeNameServerConfigTargetNameServer_ForwardingPath (..),
+
+    -- ** PolicyNetwork
+    PolicyNetwork (..),
+    newPolicyNetwork,
+
+    -- ** Project
+    Project (..),
+    newProject,
+
+    -- ** Quota
+    Quota (..),
+    newQuota,
+
+    -- ** RRSetRoutingPolicy
+    RRSetRoutingPolicy (..),
+    newRRSetRoutingPolicy,
+
+    -- ** RRSetRoutingPolicyGeoPolicy
+    RRSetRoutingPolicyGeoPolicy (..),
+    newRRSetRoutingPolicyGeoPolicy,
+
+    -- ** RRSetRoutingPolicyGeoPolicyGeoPolicyItem
+    RRSetRoutingPolicyGeoPolicyGeoPolicyItem (..),
+    newRRSetRoutingPolicyGeoPolicyGeoPolicyItem,
+
+    -- ** RRSetRoutingPolicyWrrPolicy
+    RRSetRoutingPolicyWrrPolicy (..),
+    newRRSetRoutingPolicyWrrPolicy,
+
+    -- ** RRSetRoutingPolicyWrrPolicyWrrPolicyItem
+    RRSetRoutingPolicyWrrPolicyWrrPolicyItem (..),
+    newRRSetRoutingPolicyWrrPolicyWrrPolicyItem,
+
+    -- ** ResourceRecordSet
+    ResourceRecordSet (..),
+    newResourceRecordSet,
+
+    -- ** ResourceRecordSetsListResponse
+    ResourceRecordSetsListResponse (..),
+    newResourceRecordSetsListResponse,
+
+    -- ** ResponseHeader
+    ResponseHeader (..),
+    newResponseHeader,
+
+    -- ** ResponsePoliciesListResponse
+    ResponsePoliciesListResponse (..),
+    newResponsePoliciesListResponse,
+
+    -- ** ResponsePoliciesPatchResponse
+    ResponsePoliciesPatchResponse (..),
+    newResponsePoliciesPatchResponse,
+
+    -- ** ResponsePoliciesUpdateResponse
+    ResponsePoliciesUpdateResponse (..),
+    newResponsePoliciesUpdateResponse,
+
+    -- ** ResponsePolicy
+    ResponsePolicy (..),
+    newResponsePolicy,
+
+    -- ** ResponsePolicyGKECluster
+    ResponsePolicyGKECluster (..),
+    newResponsePolicyGKECluster,
+
+    -- ** ResponsePolicyNetwork
+    ResponsePolicyNetwork (..),
+    newResponsePolicyNetwork,
+
+    -- ** ResponsePolicyRule
+    ResponsePolicyRule (..),
+    newResponsePolicyRule,
+
+    -- ** ResponsePolicyRule_Behavior
+    ResponsePolicyRule_Behavior (..),
+
+    -- ** ResponsePolicyRuleLocalData
+    ResponsePolicyRuleLocalData (..),
+    newResponsePolicyRuleLocalData,
+
+    -- ** ResponsePolicyRulesListResponse
+    ResponsePolicyRulesListResponse (..),
+    newResponsePolicyRulesListResponse,
+
+    -- ** ResponsePolicyRulesPatchResponse
+    ResponsePolicyRulesPatchResponse (..),
+    newResponsePolicyRulesPatchResponse,
+
+    -- ** ResponsePolicyRulesUpdateResponse
+    ResponsePolicyRulesUpdateResponse (..),
+    newResponsePolicyRulesUpdateResponse,
+
+    -- ** ChangesListSortBy
+    ChangesListSortBy (..),
+
+    -- ** ManagedZoneOperationsListSortBy
+    ManagedZoneOperationsListSortBy (..),
+  )
+where
+
+import Gogol.DNS.Internal.Product
+import Gogol.DNS.Internal.Sum
+import Gogol.Prelude qualified as Core
+
+-- | Default request referring to version @v2@ of the Cloud DNS API. This contains the host and root path used as a starting point for constructing service requests.
+dNSService :: Core.ServiceConfig
+dNSService =
+  Core.defaultService
+    (Core.ServiceId "dns:v2")
+    "dns.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 your data across Google Cloud services and see the email address of your Google Account
+type CloudPlatform'ReadOnly =
+  "https://www.googleapis.com/auth/cloud-platform.read-only"
+
+-- | View your DNS records hosted by Google Cloud DNS
+type Ndev'Clouddns'Readonly =
+  "https://www.googleapis.com/auth/ndev.clouddns.readonly"
+
+-- | View and manage your DNS records hosted by Google Cloud DNS
+type Ndev'Clouddns'Readwrite =
+  "https://www.googleapis.com/auth/ndev.clouddns.readwrite"
diff --git a/gen/Network/Google/DNS.hs b/gen/Network/Google/DNS.hs
deleted file mode 100644
--- a/gen/Network/Google/DNS.hs
+++ /dev/null
@@ -1,339 +0,0 @@
-{-# LANGUAGE DataKinds         #-}
-{-# LANGUAGE NoImplicitPrelude #-}
-{-# LANGUAGE TypeOperators     #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-
--- |
--- Module      : Network.Google.DNS
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Configures and serves authoritative DNS records.
---
--- /See:/ <https://developers.google.com/cloud-dns Google Cloud DNS API Reference>
-module Network.Google.DNS
-    (
-    -- * Service Configuration
-      dNSService
-
-    -- * OAuth Scopes
-    , ndevClouddnsReadOnlyScope
-    , cloudPlatformReadOnlyScope
-    , ndevClouddnsReadwriteScope
-    , cloudPlatformScope
-
-    -- * API Declaration
-    , DNSAPI
-
-    -- * Resources
-
-    -- ** dns.changes.create
-    , module Network.Google.Resource.DNS.Changes.Create
-
-    -- ** dns.changes.get
-    , module Network.Google.Resource.DNS.Changes.Get
-
-    -- ** dns.changes.list
-    , module Network.Google.Resource.DNS.Changes.List
-
-    -- ** dns.dnsKeys.get
-    , module Network.Google.Resource.DNS.DNSKeys.Get
-
-    -- ** dns.dnsKeys.list
-    , module Network.Google.Resource.DNS.DNSKeys.List
-
-    -- ** dns.managedZoneOperations.get
-    , module Network.Google.Resource.DNS.ManagedZoneOperations.Get
-
-    -- ** dns.managedZoneOperations.list
-    , module Network.Google.Resource.DNS.ManagedZoneOperations.List
-
-    -- ** dns.managedZones.create
-    , module Network.Google.Resource.DNS.ManagedZones.Create
-
-    -- ** dns.managedZones.delete
-    , module Network.Google.Resource.DNS.ManagedZones.Delete
-
-    -- ** dns.managedZones.get
-    , module Network.Google.Resource.DNS.ManagedZones.Get
-
-    -- ** dns.managedZones.list
-    , module Network.Google.Resource.DNS.ManagedZones.List
-
-    -- ** dns.managedZones.patch
-    , module Network.Google.Resource.DNS.ManagedZones.Patch
-
-    -- ** dns.managedZones.update
-    , module Network.Google.Resource.DNS.ManagedZones.Update
-
-    -- ** dns.projects.get
-    , module Network.Google.Resource.DNS.Projects.Get
-
-    -- ** dns.resourceRecordSets.list
-    , module Network.Google.Resource.DNS.ResourceRecordSets.List
-
-    -- * Types
-
-    -- ** DNSKeySpecAlgorithm
-    , DNSKeySpecAlgorithm (..)
-
-    -- ** ManagedZoneDNSSecConfigNonExistence
-    , ManagedZoneDNSSecConfigNonExistence (..)
-
-    -- ** OperationDNSKeyContext
-    , OperationDNSKeyContext
-    , operationDNSKeyContext
-    , odkcOldValue
-    , odkcNewValue
-
-    -- ** ManagedZonePrivateVisibilityConfigNetwork
-    , ManagedZonePrivateVisibilityConfigNetwork
-    , managedZonePrivateVisibilityConfigNetwork
-    , mzpvcnKind
-    , mzpvcnNetworkURL
-
-    -- ** DNSKeysListResponse
-    , DNSKeysListResponse
-    , dnsKeysListResponse
-    , dklrNextPageToken
-    , dklrDNSKeys
-    , dklrKind
-    , dklrHeader
-
-    -- ** ChangesListResponse
-    , ChangesListResponse
-    , changesListResponse
-    , clrNextPageToken
-    , clrChanges
-    , clrKind
-    , clrHeader
-
-    -- ** ManagedZoneDNSSecConfigState
-    , ManagedZoneDNSSecConfigState (..)
-
-    -- ** ManagedZoneVisibility
-    , ManagedZoneVisibility (..)
-
-    -- ** Project
-    , Project
-    , project
-    , pKind
-    , pId
-    , pNumber
-    , pQuota
-
-    -- ** Operation
-    , Operation
-    , operation
-    , oStatus
-    , oStartTime
-    , oKind
-    , oUser
-    , oId
-    , oType
-    , oZoneContext
-    , oDNSKeyContext
-
-    -- ** DNSKeySpec
-    , DNSKeySpec
-    , dnsKeySpec
-    , dksKeyType
-    , dksKind
-    , dksAlgorithm
-    , dksKeyLength
-
-    -- ** ChangesListSortBy
-    , ChangesListSortBy (..)
-
-    -- ** DNSKeyDigestType
-    , DNSKeyDigestType (..)
-
-    -- ** Change
-    , Change
-    , change
-    , cStatus
-    , cAdditions
-    , cStartTime
-    , cKind
-    , cDeletions
-    , cId
-    , cIsServing
-
-    -- ** DNSKey
-    , DNSKey
-    , dnsKey
-    , dkCreationTime
-    , dkKeyTag
-    , dkKind
-    , dkDigests
-    , dkPublicKey
-    , dkAlgorithm
-    , dkId
-    , dkType
-    , dkKeyLength
-    , dkIsActive
-    , dkDescription
-
-    -- ** OperationStatus
-    , OperationStatus (..)
-
-    -- ** OperationManagedZoneContext
-    , OperationManagedZoneContext
-    , operationManagedZoneContext
-    , omzcOldValue
-    , omzcNewValue
-
-    -- ** DNSKeyAlgorithm
-    , DNSKeyAlgorithm (..)
-
-    -- ** ResponseHeader
-    , ResponseHeader
-    , responseHeader
-    , rhOperationId
-
-    -- ** DNSKeySpecKeyType
-    , DNSKeySpecKeyType (..)
-
-    -- ** ManagedZoneOperationsListResponse
-    , ManagedZoneOperationsListResponse
-    , managedZoneOperationsListResponse
-    , mzolrNextPageToken
-    , mzolrKind
-    , mzolrHeader
-    , mzolrOperations
-
-    -- ** ResourceRecordSetsListResponse
-    , ResourceRecordSetsListResponse
-    , resourceRecordSetsListResponse
-    , rrslrNextPageToken
-    , rrslrKind
-    , rrslrHeader
-    , rrslrRrSets
-
-    -- ** ChangeStatus
-    , ChangeStatus (..)
-
-    -- ** ManagedZonePrivateVisibilityConfig
-    , ManagedZonePrivateVisibilityConfig
-    , managedZonePrivateVisibilityConfig
-    , mzpvcNetworks
-    , mzpvcKind
-
-    -- ** ManagedZoneDNSSecConfig
-    , ManagedZoneDNSSecConfig
-    , managedZoneDNSSecConfig
-    , mzdscState
-    , mzdscKind
-    , mzdscDefaultKeySpecs
-    , mzdscNonExistence
-
-    -- ** ResourceRecordSet
-    , ResourceRecordSet
-    , resourceRecordSet
-    , rrsTtl
-    , rrsKind
-    , rrsSignatureRrDatas
-    , rrsName
-    , rrsType
-    , rrsRrDatas
-
-    -- ** ManagedZone
-    , ManagedZone
-    , managedZone
-    , mzCreationTime
-    , mzKind
-    , mzNameServerSet
-    , mzVisibility
-    , mzName
-    , mzId
-    , mzLabels
-    , mzDNSName
-    , mzDescription
-    , mzDNSsecConfig
-    , mzNameServers
-    , mzPrivateVisibilityConfig
-
-    -- ** ManagedZoneLabels
-    , ManagedZoneLabels
-    , managedZoneLabels
-    , mzlAddtional
-
-    -- ** Quota
-    , Quota
-    , quota
-    , qRrSetDeletionsPerChange
-    , qWhiteListedKeySpecs
-    , qRrSetsPerManagedZone
-    , qKind
-    , qResourceRecordsPerRrSet
-    , qManagedZonesPerNetwork
-    , qRrSetAdditionsPerChange
-    , qManagedZones
-    , qTotalRrDataSizePerChange
-    , qDNSKeysPerManagedZone
-    , qNetworksPerManagedZone
-
-    -- ** DNSKeyType
-    , DNSKeyType (..)
-
-    -- ** DNSKeyDigest
-    , DNSKeyDigest
-    , dnsKeyDigest
-    , dkdDigest
-    , dkdType
-
-    -- ** ManagedZoneOperationsListSortBy
-    , ManagedZoneOperationsListSortBy (..)
-
-    -- ** ManagedZonesListResponse
-    , ManagedZonesListResponse
-    , managedZonesListResponse
-    , mzlrNextPageToken
-    , mzlrKind
-    , mzlrHeader
-    , mzlrManagedZones
-    ) where
-
-import           Network.Google.DNS.Types
-import           Network.Google.Prelude
-import           Network.Google.Resource.DNS.Changes.Create
-import           Network.Google.Resource.DNS.Changes.Get
-import           Network.Google.Resource.DNS.Changes.List
-import           Network.Google.Resource.DNS.DNSKeys.Get
-import           Network.Google.Resource.DNS.DNSKeys.List
-import           Network.Google.Resource.DNS.ManagedZoneOperations.Get
-import           Network.Google.Resource.DNS.ManagedZoneOperations.List
-import           Network.Google.Resource.DNS.ManagedZones.Create
-import           Network.Google.Resource.DNS.ManagedZones.Delete
-import           Network.Google.Resource.DNS.ManagedZones.Get
-import           Network.Google.Resource.DNS.ManagedZones.List
-import           Network.Google.Resource.DNS.ManagedZones.Patch
-import           Network.Google.Resource.DNS.ManagedZones.Update
-import           Network.Google.Resource.DNS.Projects.Get
-import           Network.Google.Resource.DNS.ResourceRecordSets.List
-
-{- $resources
-TODO
--}
-
--- | Represents the entirety of the methods and resources available for the Google Cloud DNS API service.
-type DNSAPI =
-     DNSKeysListResource :<|> DNSKeysGetResource :<|>
-       ChangesListResource
-       :<|> ChangesGetResource
-       :<|> ChangesCreateResource
-       :<|> ResourceRecordSetsListResource
-       :<|> ManagedZoneOperationsListResource
-       :<|> ManagedZoneOperationsGetResource
-       :<|> ManagedZonesListResource
-       :<|> ManagedZonesPatchResource
-       :<|> ManagedZonesGetResource
-       :<|> ManagedZonesCreateResource
-       :<|> ManagedZonesDeleteResource
-       :<|> ManagedZonesUpdateResource
-       :<|> ProjectsGetResource
diff --git a/gen/Network/Google/DNS/Types.hs b/gen/Network/Google/DNS/Types.hs
deleted file mode 100644
--- a/gen/Network/Google/DNS/Types.hs
+++ /dev/null
@@ -1,272 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-
--- |
--- Module      : Network.Google.DNS.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.DNS.Types
-    (
-    -- * Service Configuration
-      dNSService
-
-    -- * OAuth Scopes
-    , ndevClouddnsReadOnlyScope
-    , cloudPlatformReadOnlyScope
-    , ndevClouddnsReadwriteScope
-    , cloudPlatformScope
-
-    -- * DNSKeySpecAlgorithm
-    , DNSKeySpecAlgorithm (..)
-
-    -- * ManagedZoneDNSSecConfigNonExistence
-    , ManagedZoneDNSSecConfigNonExistence (..)
-
-    -- * OperationDNSKeyContext
-    , OperationDNSKeyContext
-    , operationDNSKeyContext
-    , odkcOldValue
-    , odkcNewValue
-
-    -- * ManagedZonePrivateVisibilityConfigNetwork
-    , ManagedZonePrivateVisibilityConfigNetwork
-    , managedZonePrivateVisibilityConfigNetwork
-    , mzpvcnKind
-    , mzpvcnNetworkURL
-
-    -- * DNSKeysListResponse
-    , DNSKeysListResponse
-    , dnsKeysListResponse
-    , dklrNextPageToken
-    , dklrDNSKeys
-    , dklrKind
-    , dklrHeader
-
-    -- * ChangesListResponse
-    , ChangesListResponse
-    , changesListResponse
-    , clrNextPageToken
-    , clrChanges
-    , clrKind
-    , clrHeader
-
-    -- * ManagedZoneDNSSecConfigState
-    , ManagedZoneDNSSecConfigState (..)
-
-    -- * ManagedZoneVisibility
-    , ManagedZoneVisibility (..)
-
-    -- * Project
-    , Project
-    , project
-    , pKind
-    , pId
-    , pNumber
-    , pQuota
-
-    -- * Operation
-    , Operation
-    , operation
-    , oStatus
-    , oStartTime
-    , oKind
-    , oUser
-    , oId
-    , oType
-    , oZoneContext
-    , oDNSKeyContext
-
-    -- * DNSKeySpec
-    , DNSKeySpec
-    , dnsKeySpec
-    , dksKeyType
-    , dksKind
-    , dksAlgorithm
-    , dksKeyLength
-
-    -- * ChangesListSortBy
-    , ChangesListSortBy (..)
-
-    -- * DNSKeyDigestType
-    , DNSKeyDigestType (..)
-
-    -- * Change
-    , Change
-    , change
-    , cStatus
-    , cAdditions
-    , cStartTime
-    , cKind
-    , cDeletions
-    , cId
-    , cIsServing
-
-    -- * DNSKey
-    , DNSKey
-    , dnsKey
-    , dkCreationTime
-    , dkKeyTag
-    , dkKind
-    , dkDigests
-    , dkPublicKey
-    , dkAlgorithm
-    , dkId
-    , dkType
-    , dkKeyLength
-    , dkIsActive
-    , dkDescription
-
-    -- * OperationStatus
-    , OperationStatus (..)
-
-    -- * OperationManagedZoneContext
-    , OperationManagedZoneContext
-    , operationManagedZoneContext
-    , omzcOldValue
-    , omzcNewValue
-
-    -- * DNSKeyAlgorithm
-    , DNSKeyAlgorithm (..)
-
-    -- * ResponseHeader
-    , ResponseHeader
-    , responseHeader
-    , rhOperationId
-
-    -- * DNSKeySpecKeyType
-    , DNSKeySpecKeyType (..)
-
-    -- * ManagedZoneOperationsListResponse
-    , ManagedZoneOperationsListResponse
-    , managedZoneOperationsListResponse
-    , mzolrNextPageToken
-    , mzolrKind
-    , mzolrHeader
-    , mzolrOperations
-
-    -- * ResourceRecordSetsListResponse
-    , ResourceRecordSetsListResponse
-    , resourceRecordSetsListResponse
-    , rrslrNextPageToken
-    , rrslrKind
-    , rrslrHeader
-    , rrslrRrSets
-
-    -- * ChangeStatus
-    , ChangeStatus (..)
-
-    -- * ManagedZonePrivateVisibilityConfig
-    , ManagedZonePrivateVisibilityConfig
-    , managedZonePrivateVisibilityConfig
-    , mzpvcNetworks
-    , mzpvcKind
-
-    -- * ManagedZoneDNSSecConfig
-    , ManagedZoneDNSSecConfig
-    , managedZoneDNSSecConfig
-    , mzdscState
-    , mzdscKind
-    , mzdscDefaultKeySpecs
-    , mzdscNonExistence
-
-    -- * ResourceRecordSet
-    , ResourceRecordSet
-    , resourceRecordSet
-    , rrsTtl
-    , rrsKind
-    , rrsSignatureRrDatas
-    , rrsName
-    , rrsType
-    , rrsRrDatas
-
-    -- * ManagedZone
-    , ManagedZone
-    , managedZone
-    , mzCreationTime
-    , mzKind
-    , mzNameServerSet
-    , mzVisibility
-    , mzName
-    , mzId
-    , mzLabels
-    , mzDNSName
-    , mzDescription
-    , mzDNSsecConfig
-    , mzNameServers
-    , mzPrivateVisibilityConfig
-
-    -- * ManagedZoneLabels
-    , ManagedZoneLabels
-    , managedZoneLabels
-    , mzlAddtional
-
-    -- * Quota
-    , Quota
-    , quota
-    , qRrSetDeletionsPerChange
-    , qWhiteListedKeySpecs
-    , qRrSetsPerManagedZone
-    , qKind
-    , qResourceRecordsPerRrSet
-    , qManagedZonesPerNetwork
-    , qRrSetAdditionsPerChange
-    , qManagedZones
-    , qTotalRrDataSizePerChange
-    , qDNSKeysPerManagedZone
-    , qNetworksPerManagedZone
-
-    -- * DNSKeyType
-    , DNSKeyType (..)
-
-    -- * DNSKeyDigest
-    , DNSKeyDigest
-    , dnsKeyDigest
-    , dkdDigest
-    , dkdType
-
-    -- * ManagedZoneOperationsListSortBy
-    , ManagedZoneOperationsListSortBy (..)
-
-    -- * ManagedZonesListResponse
-    , ManagedZonesListResponse
-    , managedZonesListResponse
-    , mzlrNextPageToken
-    , mzlrKind
-    , mzlrHeader
-    , mzlrManagedZones
-    ) where
-
-import           Network.Google.DNS.Types.Product
-import           Network.Google.DNS.Types.Sum
-import           Network.Google.Prelude
-
--- | Default request referring to version 'v2beta1' of the Google Cloud DNS API. This contains the host and root path used as a starting point for constructing service requests.
-dNSService :: ServiceConfig
-dNSService
-  = defaultService (ServiceId "dns:v2beta1")
-      "www.googleapis.com"
-
--- | View your DNS records hosted by Google Cloud DNS
-ndevClouddnsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/ndev.clouddns.readonly"]
-ndevClouddnsReadOnlyScope = Proxy
-
--- | View your data across Google Cloud Platform services
-cloudPlatformReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform.read-only"]
-cloudPlatformReadOnlyScope = Proxy
-
--- | View and manage your DNS records hosted by Google Cloud DNS
-ndevClouddnsReadwriteScope :: Proxy '["https://www.googleapis.com/auth/ndev.clouddns.readwrite"]
-ndevClouddnsReadwriteScope = Proxy
-
--- | View and manage your data across Google Cloud Platform services
-cloudPlatformScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform"]
-cloudPlatformScope = Proxy
diff --git a/gen/Network/Google/DNS/Types/Product.hs b/gen/Network/Google/DNS/Types/Product.hs
deleted file mode 100644
--- a/gen/Network/Google/DNS/Types/Product.hs
+++ /dev/null
@@ -1,1891 +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.DNS.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.DNS.Types.Product where
-
-import           Network.Google.DNS.Types.Sum
-import           Network.Google.Prelude
-
---
--- /See:/ 'operationDNSKeyContext' smart constructor.
-data OperationDNSKeyContext =
-  OperationDNSKeyContext'
-    { _odkcOldValue :: !(Maybe DNSKey)
-    , _odkcNewValue :: !(Maybe DNSKey)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'OperationDNSKeyContext' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'odkcOldValue'
---
--- * 'odkcNewValue'
-operationDNSKeyContext
-    :: OperationDNSKeyContext
-operationDNSKeyContext =
-  OperationDNSKeyContext' {_odkcOldValue = Nothing, _odkcNewValue = Nothing}
-
-
--- | The pre-operation DnsKey resource.
-odkcOldValue :: Lens' OperationDNSKeyContext (Maybe DNSKey)
-odkcOldValue
-  = lens _odkcOldValue (\ s a -> s{_odkcOldValue = a})
-
--- | The post-operation DnsKey resource.
-odkcNewValue :: Lens' OperationDNSKeyContext (Maybe DNSKey)
-odkcNewValue
-  = lens _odkcNewValue (\ s a -> s{_odkcNewValue = a})
-
-instance FromJSON OperationDNSKeyContext where
-        parseJSON
-          = withObject "OperationDNSKeyContext"
-              (\ o ->
-                 OperationDNSKeyContext' <$>
-                   (o .:? "oldValue") <*> (o .:? "newValue"))
-
-instance ToJSON OperationDNSKeyContext where
-        toJSON OperationDNSKeyContext'{..}
-          = object
-              (catMaybes
-                 [("oldValue" .=) <$> _odkcOldValue,
-                  ("newValue" .=) <$> _odkcNewValue])
-
---
--- /See:/ 'managedZonePrivateVisibilityConfigNetwork' smart constructor.
-data ManagedZonePrivateVisibilityConfigNetwork =
-  ManagedZonePrivateVisibilityConfigNetwork'
-    { _mzpvcnKind       :: !Text
-    , _mzpvcnNetworkURL :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ManagedZonePrivateVisibilityConfigNetwork' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mzpvcnKind'
---
--- * 'mzpvcnNetworkURL'
-managedZonePrivateVisibilityConfigNetwork
-    :: ManagedZonePrivateVisibilityConfigNetwork
-managedZonePrivateVisibilityConfigNetwork =
-  ManagedZonePrivateVisibilityConfigNetwork'
-    { _mzpvcnKind = "dns#managedZonePrivateVisibilityConfigNetwork"
-    , _mzpvcnNetworkURL = Nothing
-    }
-
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dns#managedZonePrivateVisibilityConfigNetwork\".
-mzpvcnKind :: Lens' ManagedZonePrivateVisibilityConfigNetwork Text
-mzpvcnKind
-  = lens _mzpvcnKind (\ s a -> s{_mzpvcnKind = a})
-
--- | The fully qualified URL of the VPC network to bind to. This should be
--- formatted like
--- https:\/\/www.googleapis.com\/compute\/v1\/projects\/{project}\/global\/networks\/{network}
-mzpvcnNetworkURL :: Lens' ManagedZonePrivateVisibilityConfigNetwork (Maybe Text)
-mzpvcnNetworkURL
-  = lens _mzpvcnNetworkURL
-      (\ s a -> s{_mzpvcnNetworkURL = a})
-
-instance FromJSON
-           ManagedZonePrivateVisibilityConfigNetwork
-         where
-        parseJSON
-          = withObject
-              "ManagedZonePrivateVisibilityConfigNetwork"
-              (\ o ->
-                 ManagedZonePrivateVisibilityConfigNetwork' <$>
-                   (o .:? "kind" .!=
-                      "dns#managedZonePrivateVisibilityConfigNetwork")
-                     <*> (o .:? "networkUrl"))
-
-instance ToJSON
-           ManagedZonePrivateVisibilityConfigNetwork
-         where
-        toJSON ManagedZonePrivateVisibilityConfigNetwork'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _mzpvcnKind),
-                  ("networkUrl" .=) <$> _mzpvcnNetworkURL])
-
--- | The response to a request to enumerate DnsKeys in a ManagedZone.
---
--- /See:/ 'dnsKeysListResponse' smart constructor.
-data DNSKeysListResponse =
-  DNSKeysListResponse'
-    { _dklrNextPageToken :: !(Maybe Text)
-    , _dklrDNSKeys       :: !(Maybe [DNSKey])
-    , _dklrKind          :: !Text
-    , _dklrHeader        :: !(Maybe ResponseHeader)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DNSKeysListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dklrNextPageToken'
---
--- * 'dklrDNSKeys'
---
--- * 'dklrKind'
---
--- * 'dklrHeader'
-dnsKeysListResponse
-    :: DNSKeysListResponse
-dnsKeysListResponse =
-  DNSKeysListResponse'
-    { _dklrNextPageToken = Nothing
-    , _dklrDNSKeys = Nothing
-    , _dklrKind = "dns#dnsKeysListResponse"
-    , _dklrHeader = Nothing
-    }
-
-
--- | The presence of this field indicates that there exist more results
--- following your last page of results in pagination order. To fetch them,
--- make another list request using this value as your pagination token. In
--- this way you can retrieve the complete contents of even very large
--- collections one page at a time. However, if the contents of the
--- collection change between the first and last paginated list request, the
--- set of all elements returned will be an inconsistent view of the
--- collection. There is no way to retrieve a \"snapshot\" of collections
--- larger than the maximum page size.
-dklrNextPageToken :: Lens' DNSKeysListResponse (Maybe Text)
-dklrNextPageToken
-  = lens _dklrNextPageToken
-      (\ s a -> s{_dklrNextPageToken = a})
-
--- | The requested resources.
-dklrDNSKeys :: Lens' DNSKeysListResponse [DNSKey]
-dklrDNSKeys
-  = lens _dklrDNSKeys (\ s a -> s{_dklrDNSKeys = a}) .
-      _Default
-      . _Coerce
-
--- | Type of resource.
-dklrKind :: Lens' DNSKeysListResponse Text
-dklrKind = lens _dklrKind (\ s a -> s{_dklrKind = a})
-
-dklrHeader :: Lens' DNSKeysListResponse (Maybe ResponseHeader)
-dklrHeader
-  = lens _dklrHeader (\ s a -> s{_dklrHeader = a})
-
-instance FromJSON DNSKeysListResponse where
-        parseJSON
-          = withObject "DNSKeysListResponse"
-              (\ o ->
-                 DNSKeysListResponse' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "dnsKeys" .!= mempty)
-                     <*> (o .:? "kind" .!= "dns#dnsKeysListResponse")
-                     <*> (o .:? "header"))
-
-instance ToJSON DNSKeysListResponse where
-        toJSON DNSKeysListResponse'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _dklrNextPageToken,
-                  ("dnsKeys" .=) <$> _dklrDNSKeys,
-                  Just ("kind" .= _dklrKind),
-                  ("header" .=) <$> _dklrHeader])
-
--- | The response to a request to enumerate Changes to a ResourceRecordSets
--- collection.
---
--- /See:/ 'changesListResponse' smart constructor.
-data ChangesListResponse =
-  ChangesListResponse'
-    { _clrNextPageToken :: !(Maybe Text)
-    , _clrChanges       :: !(Maybe [Change])
-    , _clrKind          :: !Text
-    , _clrHeader        :: !(Maybe ResponseHeader)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ChangesListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'clrNextPageToken'
---
--- * 'clrChanges'
---
--- * 'clrKind'
---
--- * 'clrHeader'
-changesListResponse
-    :: ChangesListResponse
-changesListResponse =
-  ChangesListResponse'
-    { _clrNextPageToken = Nothing
-    , _clrChanges = Nothing
-    , _clrKind = "dns#changesListResponse"
-    , _clrHeader = Nothing
-    }
-
-
--- | The presence of this field indicates that there exist more results
--- following your last page of results in pagination order. To fetch them,
--- make another list request using this value as your pagination token. In
--- this way you can retrieve the complete contents of even very large
--- collections one page at a time. However, if the contents of the
--- collection change between the first and last paginated list request, the
--- set of all elements returned will be an inconsistent view of the
--- collection. There is no way to retrieve a \"snapshot\" of collections
--- larger than the maximum page size.
-clrNextPageToken :: Lens' ChangesListResponse (Maybe Text)
-clrNextPageToken
-  = lens _clrNextPageToken
-      (\ s a -> s{_clrNextPageToken = a})
-
--- | The requested changes.
-clrChanges :: Lens' ChangesListResponse [Change]
-clrChanges
-  = lens _clrChanges (\ s a -> s{_clrChanges = a}) .
-      _Default
-      . _Coerce
-
--- | Type of resource.
-clrKind :: Lens' ChangesListResponse Text
-clrKind = lens _clrKind (\ s a -> s{_clrKind = a})
-
-clrHeader :: Lens' ChangesListResponse (Maybe ResponseHeader)
-clrHeader
-  = lens _clrHeader (\ s a -> s{_clrHeader = a})
-
-instance FromJSON ChangesListResponse where
-        parseJSON
-          = withObject "ChangesListResponse"
-              (\ o ->
-                 ChangesListResponse' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "changes" .!= mempty)
-                     <*> (o .:? "kind" .!= "dns#changesListResponse")
-                     <*> (o .:? "header"))
-
-instance ToJSON ChangesListResponse where
-        toJSON ChangesListResponse'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _clrNextPageToken,
-                  ("changes" .=) <$> _clrChanges,
-                  Just ("kind" .= _clrKind),
-                  ("header" .=) <$> _clrHeader])
-
--- | A project resource. The project is a top level container for resources
--- including Cloud DNS ManagedZones. Projects can be created only in the
--- APIs console.
---
--- /See:/ 'project' smart constructor.
-data Project =
-  Project'
-    { _pKind   :: !Text
-    , _pId     :: !(Maybe Text)
-    , _pNumber :: !(Maybe (Textual Word64))
-    , _pQuota  :: !(Maybe Quota)
-    }
-  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:
---
--- * 'pKind'
---
--- * 'pId'
---
--- * 'pNumber'
---
--- * 'pQuota'
-project
-    :: Project
-project =
-  Project'
-    { _pKind = "dns#project"
-    , _pId = Nothing
-    , _pNumber = Nothing
-    , _pQuota = Nothing
-    }
-
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dns#project\".
-pKind :: Lens' Project Text
-pKind = lens _pKind (\ s a -> s{_pKind = a})
-
--- | User assigned unique identifier for the resource (output only).
-pId :: Lens' Project (Maybe Text)
-pId = lens _pId (\ s a -> s{_pId = a})
-
--- | Unique numeric identifier for the resource; defined by the server
--- (output only).
-pNumber :: Lens' Project (Maybe Word64)
-pNumber
-  = lens _pNumber (\ s a -> s{_pNumber = a}) .
-      mapping _Coerce
-
--- | Quotas assigned to this project (output only).
-pQuota :: Lens' Project (Maybe Quota)
-pQuota = lens _pQuota (\ s a -> s{_pQuota = a})
-
-instance FromJSON Project where
-        parseJSON
-          = withObject "Project"
-              (\ o ->
-                 Project' <$>
-                   (o .:? "kind" .!= "dns#project") <*> (o .:? "id") <*>
-                     (o .:? "number")
-                     <*> (o .:? "quota"))
-
-instance ToJSON Project where
-        toJSON Project'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _pKind), ("id" .=) <$> _pId,
-                  ("number" .=) <$> _pNumber,
-                  ("quota" .=) <$> _pQuota])
-
--- | An operation represents a successful mutation performed on a Cloud DNS
--- resource. Operations provide: - An audit log of server resource
--- mutations. - A way to recover\/retry API calls in the case where the
--- response is never received by the caller. Use the caller specified
--- client_operation_id.
---
--- /See:/ 'operation' smart constructor.
-data Operation =
-  Operation'
-    { _oStatus        :: !(Maybe OperationStatus)
-    , _oStartTime     :: !(Maybe Text)
-    , _oKind          :: !Text
-    , _oUser          :: !(Maybe Text)
-    , _oId            :: !(Maybe Text)
-    , _oType          :: !(Maybe Text)
-    , _oZoneContext   :: !(Maybe OperationManagedZoneContext)
-    , _oDNSKeyContext :: !(Maybe OperationDNSKeyContext)
-    }
-  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:
---
--- * 'oStatus'
---
--- * 'oStartTime'
---
--- * 'oKind'
---
--- * 'oUser'
---
--- * 'oId'
---
--- * 'oType'
---
--- * 'oZoneContext'
---
--- * 'oDNSKeyContext'
-operation
-    :: Operation
-operation =
-  Operation'
-    { _oStatus = Nothing
-    , _oStartTime = Nothing
-    , _oKind = "dns#operation"
-    , _oUser = Nothing
-    , _oId = Nothing
-    , _oType = Nothing
-    , _oZoneContext = Nothing
-    , _oDNSKeyContext = Nothing
-    }
-
-
--- | Status of the operation. Can be one of the following: \"PENDING\" or
--- \"DONE\" (output only). A status of \"DONE\" means that the request to
--- update the authoritative servers has been sent, but the servers might
--- not be updated yet.
-oStatus :: Lens' Operation (Maybe OperationStatus)
-oStatus = lens _oStatus (\ s a -> s{_oStatus = a})
-
--- | The time that this operation was started by the server. This is in
--- RFC3339 text format (output only).
-oStartTime :: Lens' Operation (Maybe Text)
-oStartTime
-  = lens _oStartTime (\ s a -> s{_oStartTime = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dns#operation\".
-oKind :: Lens' Operation Text
-oKind = lens _oKind (\ s a -> s{_oKind = a})
-
--- | User who requested the operation, for example: user\'example.com.
--- cloud-dns-system for operations automatically done by the system.
--- (output only)
-oUser :: Lens' Operation (Maybe Text)
-oUser = lens _oUser (\ s a -> s{_oUser = a})
-
--- | Unique identifier for the resource. This is the client_operation_id if
--- the client specified it when the mutation was initiated, otherwise, it
--- is generated by the server. The name must be 1-63 characters long and
--- match the regular expression [-a-z0-9]? (output only)
-oId :: Lens' Operation (Maybe Text)
-oId = lens _oId (\ s a -> s{_oId = a})
-
--- | Type of the operation. Operations include insert, update, and delete
--- (output only).
-oType :: Lens' Operation (Maybe Text)
-oType = lens _oType (\ s a -> s{_oType = a})
-
--- | Only populated if the operation targeted a ManagedZone (output only).
-oZoneContext :: Lens' Operation (Maybe OperationManagedZoneContext)
-oZoneContext
-  = lens _oZoneContext (\ s a -> s{_oZoneContext = a})
-
--- | Only populated if the operation targeted a DnsKey (output only).
-oDNSKeyContext :: Lens' Operation (Maybe OperationDNSKeyContext)
-oDNSKeyContext
-  = lens _oDNSKeyContext
-      (\ s a -> s{_oDNSKeyContext = a})
-
-instance FromJSON Operation where
-        parseJSON
-          = withObject "Operation"
-              (\ o ->
-                 Operation' <$>
-                   (o .:? "status") <*> (o .:? "startTime") <*>
-                     (o .:? "kind" .!= "dns#operation")
-                     <*> (o .:? "user")
-                     <*> (o .:? "id")
-                     <*> (o .:? "type")
-                     <*> (o .:? "zoneContext")
-                     <*> (o .:? "dnsKeyContext"))
-
-instance ToJSON Operation where
-        toJSON Operation'{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _oStatus,
-                  ("startTime" .=) <$> _oStartTime,
-                  Just ("kind" .= _oKind), ("user" .=) <$> _oUser,
-                  ("id" .=) <$> _oId, ("type" .=) <$> _oType,
-                  ("zoneContext" .=) <$> _oZoneContext,
-                  ("dnsKeyContext" .=) <$> _oDNSKeyContext])
-
--- | Parameters for DnsKey key generation. Used for generating initial keys
--- for a new ManagedZone and as default when adding a new DnsKey.
---
--- /See:/ 'dnsKeySpec' smart constructor.
-data DNSKeySpec =
-  DNSKeySpec'
-    { _dksKeyType   :: !(Maybe DNSKeySpecKeyType)
-    , _dksKind      :: !Text
-    , _dksAlgorithm :: !(Maybe DNSKeySpecAlgorithm)
-    , _dksKeyLength :: !(Maybe (Textual Word32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DNSKeySpec' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dksKeyType'
---
--- * 'dksKind'
---
--- * 'dksAlgorithm'
---
--- * 'dksKeyLength'
-dnsKeySpec
-    :: DNSKeySpec
-dnsKeySpec =
-  DNSKeySpec'
-    { _dksKeyType = Nothing
-    , _dksKind = "dns#dnsKeySpec"
-    , _dksAlgorithm = Nothing
-    , _dksKeyLength = Nothing
-    }
-
-
--- | Specifies whether this is a key signing key (KSK) or a zone signing key
--- (ZSK). Key signing keys have the Secure Entry Point flag set and, when
--- active, will only be used to sign resource record sets of type DNSKEY.
--- Zone signing keys do not have the Secure Entry Point flag set and will
--- be used to sign all other types of resource record sets.
-dksKeyType :: Lens' DNSKeySpec (Maybe DNSKeySpecKeyType)
-dksKeyType
-  = lens _dksKeyType (\ s a -> s{_dksKeyType = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dns#dnsKeySpec\".
-dksKind :: Lens' DNSKeySpec Text
-dksKind = lens _dksKind (\ s a -> s{_dksKind = a})
-
--- | String mnemonic specifying the DNSSEC algorithm of this key.
-dksAlgorithm :: Lens' DNSKeySpec (Maybe DNSKeySpecAlgorithm)
-dksAlgorithm
-  = lens _dksAlgorithm (\ s a -> s{_dksAlgorithm = a})
-
--- | Length of the keys in bits.
-dksKeyLength :: Lens' DNSKeySpec (Maybe Word32)
-dksKeyLength
-  = lens _dksKeyLength (\ s a -> s{_dksKeyLength = a})
-      . mapping _Coerce
-
-instance FromJSON DNSKeySpec where
-        parseJSON
-          = withObject "DNSKeySpec"
-              (\ o ->
-                 DNSKeySpec' <$>
-                   (o .:? "keyType") <*>
-                     (o .:? "kind" .!= "dns#dnsKeySpec")
-                     <*> (o .:? "algorithm")
-                     <*> (o .:? "keyLength"))
-
-instance ToJSON DNSKeySpec where
-        toJSON DNSKeySpec'{..}
-          = object
-              (catMaybes
-                 [("keyType" .=) <$> _dksKeyType,
-                  Just ("kind" .= _dksKind),
-                  ("algorithm" .=) <$> _dksAlgorithm,
-                  ("keyLength" .=) <$> _dksKeyLength])
-
--- | A Change represents a set of ResourceRecordSet additions and deletions
--- applied atomically to a ManagedZone. ResourceRecordSets within a
--- ManagedZone are modified by creating a new Change element in the Changes
--- collection. In turn the Changes collection also records the past
--- modifications to the ResourceRecordSets in a ManagedZone. The current
--- state of the ManagedZone is the sum effect of applying all Change
--- elements in the Changes collection in sequence.
---
--- /See:/ 'change' smart constructor.
-data Change =
-  Change'
-    { _cStatus    :: !(Maybe ChangeStatus)
-    , _cAdditions :: !(Maybe [ResourceRecordSet])
-    , _cStartTime :: !(Maybe Text)
-    , _cKind      :: !Text
-    , _cDeletions :: !(Maybe [ResourceRecordSet])
-    , _cId        :: !(Maybe Text)
-    , _cIsServing :: !(Maybe Bool)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Change' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cStatus'
---
--- * 'cAdditions'
---
--- * 'cStartTime'
---
--- * 'cKind'
---
--- * 'cDeletions'
---
--- * 'cId'
---
--- * 'cIsServing'
-change
-    :: Change
-change =
-  Change'
-    { _cStatus = Nothing
-    , _cAdditions = Nothing
-    , _cStartTime = Nothing
-    , _cKind = "dns#change"
-    , _cDeletions = Nothing
-    , _cId = Nothing
-    , _cIsServing = Nothing
-    }
-
-
--- | Status of the operation (output only). A status of \"done\" means that
--- the request to update the authoritative servers has been sent, but the
--- servers might not be updated yet.
-cStatus :: Lens' Change (Maybe ChangeStatus)
-cStatus = lens _cStatus (\ s a -> s{_cStatus = a})
-
--- | Which ResourceRecordSets to add?
-cAdditions :: Lens' Change [ResourceRecordSet]
-cAdditions
-  = lens _cAdditions (\ s a -> s{_cAdditions = a}) .
-      _Default
-      . _Coerce
-
--- | The time that this operation was started by the server (output only).
--- This is in RFC3339 text format.
-cStartTime :: Lens' Change (Maybe Text)
-cStartTime
-  = lens _cStartTime (\ s a -> s{_cStartTime = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dns#change\".
-cKind :: Lens' Change Text
-cKind = lens _cKind (\ s a -> s{_cKind = a})
-
--- | Which ResourceRecordSets to remove? Must match existing data exactly.
-cDeletions :: Lens' Change [ResourceRecordSet]
-cDeletions
-  = lens _cDeletions (\ s a -> s{_cDeletions = a}) .
-      _Default
-      . _Coerce
-
--- | Unique identifier for the resource; defined by the server (output only).
-cId :: Lens' Change (Maybe Text)
-cId = lens _cId (\ s a -> s{_cId = a})
-
--- | If the DNS queries for the zone will be served.
-cIsServing :: Lens' Change (Maybe Bool)
-cIsServing
-  = lens _cIsServing (\ s a -> s{_cIsServing = a})
-
-instance FromJSON Change where
-        parseJSON
-          = withObject "Change"
-              (\ o ->
-                 Change' <$>
-                   (o .:? "status") <*> (o .:? "additions" .!= mempty)
-                     <*> (o .:? "startTime")
-                     <*> (o .:? "kind" .!= "dns#change")
-                     <*> (o .:? "deletions" .!= mempty)
-                     <*> (o .:? "id")
-                     <*> (o .:? "isServing"))
-
-instance ToJSON Change where
-        toJSON Change'{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _cStatus,
-                  ("additions" .=) <$> _cAdditions,
-                  ("startTime" .=) <$> _cStartTime,
-                  Just ("kind" .= _cKind),
-                  ("deletions" .=) <$> _cDeletions, ("id" .=) <$> _cId,
-                  ("isServing" .=) <$> _cIsServing])
-
--- | A DNSSEC key pair.
---
--- /See:/ 'dnsKey' smart constructor.
-data DNSKey =
-  DNSKey'
-    { _dkCreationTime :: !(Maybe Text)
-    , _dkKeyTag       :: !(Maybe (Textual Int32))
-    , _dkKind         :: !Text
-    , _dkDigests      :: !(Maybe [DNSKeyDigest])
-    , _dkPublicKey    :: !(Maybe Text)
-    , _dkAlgorithm    :: !(Maybe DNSKeyAlgorithm)
-    , _dkId           :: !(Maybe Text)
-    , _dkType         :: !(Maybe DNSKeyType)
-    , _dkKeyLength    :: !(Maybe (Textual Word32))
-    , _dkIsActive     :: !(Maybe Bool)
-    , _dkDescription  :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DNSKey' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dkCreationTime'
---
--- * 'dkKeyTag'
---
--- * 'dkKind'
---
--- * 'dkDigests'
---
--- * 'dkPublicKey'
---
--- * 'dkAlgorithm'
---
--- * 'dkId'
---
--- * 'dkType'
---
--- * 'dkKeyLength'
---
--- * 'dkIsActive'
---
--- * 'dkDescription'
-dnsKey
-    :: DNSKey
-dnsKey =
-  DNSKey'
-    { _dkCreationTime = Nothing
-    , _dkKeyTag = Nothing
-    , _dkKind = "dns#dnsKey"
-    , _dkDigests = Nothing
-    , _dkPublicKey = Nothing
-    , _dkAlgorithm = Nothing
-    , _dkId = Nothing
-    , _dkType = Nothing
-    , _dkKeyLength = Nothing
-    , _dkIsActive = Nothing
-    , _dkDescription = Nothing
-    }
-
-
--- | The time that this resource was created in the control plane. This is in
--- RFC3339 text format. Output only.
-dkCreationTime :: Lens' DNSKey (Maybe Text)
-dkCreationTime
-  = lens _dkCreationTime
-      (\ s a -> s{_dkCreationTime = a})
-
--- | The key tag is a non-cryptographic hash of the a DNSKEY resource record
--- associated with this DnsKey. The key tag can be used to identify a
--- DNSKEY more quickly (but it is not a unique identifier). In particular,
--- the key tag is used in a parent zone\'s DS record to point at the DNSKEY
--- in this child ManagedZone. The key tag is a number in the range [0,
--- 65535] and the algorithm to calculate it is specified in RFC4034
--- Appendix B. Output only.
-dkKeyTag :: Lens' DNSKey (Maybe Int32)
-dkKeyTag
-  = lens _dkKeyTag (\ s a -> s{_dkKeyTag = a}) .
-      mapping _Coerce
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dns#dnsKey\".
-dkKind :: Lens' DNSKey Text
-dkKind = lens _dkKind (\ s a -> s{_dkKind = a})
-
--- | Cryptographic hashes of the DNSKEY resource record associated with this
--- DnsKey. These digests are needed to construct a DS record that points at
--- this DNS key. Output only.
-dkDigests :: Lens' DNSKey [DNSKeyDigest]
-dkDigests
-  = lens _dkDigests (\ s a -> s{_dkDigests = a}) .
-      _Default
-      . _Coerce
-
--- | Base64 encoded public half of this key. Output only.
-dkPublicKey :: Lens' DNSKey (Maybe Text)
-dkPublicKey
-  = lens _dkPublicKey (\ s a -> s{_dkPublicKey = a})
-
--- | String mnemonic specifying the DNSSEC algorithm of this key. Immutable
--- after creation time.
-dkAlgorithm :: Lens' DNSKey (Maybe DNSKeyAlgorithm)
-dkAlgorithm
-  = lens _dkAlgorithm (\ s a -> s{_dkAlgorithm = a})
-
--- | Unique identifier for the resource; defined by the server (output only).
-dkId :: Lens' DNSKey (Maybe Text)
-dkId = lens _dkId (\ s a -> s{_dkId = a})
-
--- | One of \"KEY_SIGNING\" or \"ZONE_SIGNING\". Keys of type KEY_SIGNING
--- have the Secure Entry Point flag set and, when active, will be used to
--- sign only resource record sets of type DNSKEY. Otherwise, the Secure
--- Entry Point flag will be cleared and this key will be used to sign only
--- resource record sets of other types. Immutable after creation time.
-dkType :: Lens' DNSKey (Maybe DNSKeyType)
-dkType = lens _dkType (\ s a -> s{_dkType = a})
-
--- | Length of the key in bits. Specified at creation time then immutable.
-dkKeyLength :: Lens' DNSKey (Maybe Word32)
-dkKeyLength
-  = lens _dkKeyLength (\ s a -> s{_dkKeyLength = a}) .
-      mapping _Coerce
-
--- | Active keys will be used to sign subsequent changes to the ManagedZone.
--- Inactive keys will still be present as DNSKEY Resource Records for the
--- use of resolvers validating existing signatures.
-dkIsActive :: Lens' DNSKey (Maybe Bool)
-dkIsActive
-  = lens _dkIsActive (\ s a -> s{_dkIsActive = a})
-
--- | A mutable string of at most 1024 characters associated with this
--- resource for the user\'s convenience. Has no effect on the resource\'s
--- function.
-dkDescription :: Lens' DNSKey (Maybe Text)
-dkDescription
-  = lens _dkDescription
-      (\ s a -> s{_dkDescription = a})
-
-instance FromJSON DNSKey where
-        parseJSON
-          = withObject "DNSKey"
-              (\ o ->
-                 DNSKey' <$>
-                   (o .:? "creationTime") <*> (o .:? "keyTag") <*>
-                     (o .:? "kind" .!= "dns#dnsKey")
-                     <*> (o .:? "digests" .!= mempty)
-                     <*> (o .:? "publicKey")
-                     <*> (o .:? "algorithm")
-                     <*> (o .:? "id")
-                     <*> (o .:? "type")
-                     <*> (o .:? "keyLength")
-                     <*> (o .:? "isActive")
-                     <*> (o .:? "description"))
-
-instance ToJSON DNSKey where
-        toJSON DNSKey'{..}
-          = object
-              (catMaybes
-                 [("creationTime" .=) <$> _dkCreationTime,
-                  ("keyTag" .=) <$> _dkKeyTag,
-                  Just ("kind" .= _dkKind),
-                  ("digests" .=) <$> _dkDigests,
-                  ("publicKey" .=) <$> _dkPublicKey,
-                  ("algorithm" .=) <$> _dkAlgorithm,
-                  ("id" .=) <$> _dkId, ("type" .=) <$> _dkType,
-                  ("keyLength" .=) <$> _dkKeyLength,
-                  ("isActive" .=) <$> _dkIsActive,
-                  ("description" .=) <$> _dkDescription])
-
---
--- /See:/ 'operationManagedZoneContext' smart constructor.
-data OperationManagedZoneContext =
-  OperationManagedZoneContext'
-    { _omzcOldValue :: !(Maybe ManagedZone)
-    , _omzcNewValue :: !(Maybe ManagedZone)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'OperationManagedZoneContext' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'omzcOldValue'
---
--- * 'omzcNewValue'
-operationManagedZoneContext
-    :: OperationManagedZoneContext
-operationManagedZoneContext =
-  OperationManagedZoneContext'
-    {_omzcOldValue = Nothing, _omzcNewValue = Nothing}
-
-
--- | The pre-operation ManagedZone resource.
-omzcOldValue :: Lens' OperationManagedZoneContext (Maybe ManagedZone)
-omzcOldValue
-  = lens _omzcOldValue (\ s a -> s{_omzcOldValue = a})
-
--- | The post-operation ManagedZone resource.
-omzcNewValue :: Lens' OperationManagedZoneContext (Maybe ManagedZone)
-omzcNewValue
-  = lens _omzcNewValue (\ s a -> s{_omzcNewValue = a})
-
-instance FromJSON OperationManagedZoneContext where
-        parseJSON
-          = withObject "OperationManagedZoneContext"
-              (\ o ->
-                 OperationManagedZoneContext' <$>
-                   (o .:? "oldValue") <*> (o .:? "newValue"))
-
-instance ToJSON OperationManagedZoneContext where
-        toJSON OperationManagedZoneContext'{..}
-          = object
-              (catMaybes
-                 [("oldValue" .=) <$> _omzcOldValue,
-                  ("newValue" .=) <$> _omzcNewValue])
-
--- | Elements common to every response.
---
--- /See:/ 'responseHeader' smart constructor.
-newtype ResponseHeader =
-  ResponseHeader'
-    { _rhOperationId :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ResponseHeader' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rhOperationId'
-responseHeader
-    :: ResponseHeader
-responseHeader = ResponseHeader' {_rhOperationId = Nothing}
-
-
--- | For mutating operation requests that completed successfully. This is the
--- client_operation_id if the client specified it, otherwise it is
--- generated by the server (output only).
-rhOperationId :: Lens' ResponseHeader (Maybe Text)
-rhOperationId
-  = lens _rhOperationId
-      (\ s a -> s{_rhOperationId = a})
-
-instance FromJSON ResponseHeader where
-        parseJSON
-          = withObject "ResponseHeader"
-              (\ o -> ResponseHeader' <$> (o .:? "operationId"))
-
-instance ToJSON ResponseHeader where
-        toJSON ResponseHeader'{..}
-          = object
-              (catMaybes [("operationId" .=) <$> _rhOperationId])
-
---
--- /See:/ 'managedZoneOperationsListResponse' smart constructor.
-data ManagedZoneOperationsListResponse =
-  ManagedZoneOperationsListResponse'
-    { _mzolrNextPageToken :: !(Maybe Text)
-    , _mzolrKind          :: !Text
-    , _mzolrHeader        :: !(Maybe ResponseHeader)
-    , _mzolrOperations    :: !(Maybe [Operation])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ManagedZoneOperationsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mzolrNextPageToken'
---
--- * 'mzolrKind'
---
--- * 'mzolrHeader'
---
--- * 'mzolrOperations'
-managedZoneOperationsListResponse
-    :: ManagedZoneOperationsListResponse
-managedZoneOperationsListResponse =
-  ManagedZoneOperationsListResponse'
-    { _mzolrNextPageToken = Nothing
-    , _mzolrKind = "dns#managedZoneOperationsListResponse"
-    , _mzolrHeader = Nothing
-    , _mzolrOperations = Nothing
-    }
-
-
--- | The presence of this field indicates that there exist more results
--- following your last page of results in pagination order. To fetch them,
--- make another list request using this value as your page token. In this
--- way you can retrieve the complete contents of even very large
--- collections one page at a time. However, if the contents of the
--- collection change between the first and last paginated list request, the
--- set of all elements returned will be an inconsistent view of the
--- collection. There is no way to retrieve a consistent snapshot of a
--- collection larger than the maximum page size.
-mzolrNextPageToken :: Lens' ManagedZoneOperationsListResponse (Maybe Text)
-mzolrNextPageToken
-  = lens _mzolrNextPageToken
-      (\ s a -> s{_mzolrNextPageToken = a})
-
--- | Type of resource.
-mzolrKind :: Lens' ManagedZoneOperationsListResponse Text
-mzolrKind
-  = lens _mzolrKind (\ s a -> s{_mzolrKind = a})
-
-mzolrHeader :: Lens' ManagedZoneOperationsListResponse (Maybe ResponseHeader)
-mzolrHeader
-  = lens _mzolrHeader (\ s a -> s{_mzolrHeader = a})
-
--- | The operation resources.
-mzolrOperations :: Lens' ManagedZoneOperationsListResponse [Operation]
-mzolrOperations
-  = lens _mzolrOperations
-      (\ s a -> s{_mzolrOperations = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON ManagedZoneOperationsListResponse
-         where
-        parseJSON
-          = withObject "ManagedZoneOperationsListResponse"
-              (\ o ->
-                 ManagedZoneOperationsListResponse' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "dns#managedZoneOperationsListResponse")
-                     <*> (o .:? "header")
-                     <*> (o .:? "operations" .!= mempty))
-
-instance ToJSON ManagedZoneOperationsListResponse
-         where
-        toJSON ManagedZoneOperationsListResponse'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _mzolrNextPageToken,
-                  Just ("kind" .= _mzolrKind),
-                  ("header" .=) <$> _mzolrHeader,
-                  ("operations" .=) <$> _mzolrOperations])
-
---
--- /See:/ 'resourceRecordSetsListResponse' smart constructor.
-data ResourceRecordSetsListResponse =
-  ResourceRecordSetsListResponse'
-    { _rrslrNextPageToken :: !(Maybe Text)
-    , _rrslrKind          :: !Text
-    , _rrslrHeader        :: !(Maybe ResponseHeader)
-    , _rrslrRrSets        :: !(Maybe [ResourceRecordSet])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ResourceRecordSetsListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rrslrNextPageToken'
---
--- * 'rrslrKind'
---
--- * 'rrslrHeader'
---
--- * 'rrslrRrSets'
-resourceRecordSetsListResponse
-    :: ResourceRecordSetsListResponse
-resourceRecordSetsListResponse =
-  ResourceRecordSetsListResponse'
-    { _rrslrNextPageToken = Nothing
-    , _rrslrKind = "dns#resourceRecordSetsListResponse"
-    , _rrslrHeader = Nothing
-    , _rrslrRrSets = Nothing
-    }
-
-
--- | The presence of this field indicates that there exist more results
--- following your last page of results in pagination order. To fetch them,
--- make another list request using this value as your pagination token. In
--- this way you can retrieve the complete contents of even very large
--- collections one page at a time. However, if the contents of the
--- collection change between the first and last paginated list request, the
--- set of all elements returned will be an inconsistent view of the
--- collection. There is no way to retrieve a consistent snapshot of a
--- collection larger than the maximum page size.
-rrslrNextPageToken :: Lens' ResourceRecordSetsListResponse (Maybe Text)
-rrslrNextPageToken
-  = lens _rrslrNextPageToken
-      (\ s a -> s{_rrslrNextPageToken = a})
-
--- | Type of resource.
-rrslrKind :: Lens' ResourceRecordSetsListResponse Text
-rrslrKind
-  = lens _rrslrKind (\ s a -> s{_rrslrKind = a})
-
-rrslrHeader :: Lens' ResourceRecordSetsListResponse (Maybe ResponseHeader)
-rrslrHeader
-  = lens _rrslrHeader (\ s a -> s{_rrslrHeader = a})
-
--- | The resource record set resources.
-rrslrRrSets :: Lens' ResourceRecordSetsListResponse [ResourceRecordSet]
-rrslrRrSets
-  = lens _rrslrRrSets (\ s a -> s{_rrslrRrSets = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON ResourceRecordSetsListResponse
-         where
-        parseJSON
-          = withObject "ResourceRecordSetsListResponse"
-              (\ o ->
-                 ResourceRecordSetsListResponse' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "dns#resourceRecordSetsListResponse")
-                     <*> (o .:? "header")
-                     <*> (o .:? "rrsets" .!= mempty))
-
-instance ToJSON ResourceRecordSetsListResponse where
-        toJSON ResourceRecordSetsListResponse'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _rrslrNextPageToken,
-                  Just ("kind" .= _rrslrKind),
-                  ("header" .=) <$> _rrslrHeader,
-                  ("rrsets" .=) <$> _rrslrRrSets])
-
---
--- /See:/ 'managedZonePrivateVisibilityConfig' smart constructor.
-data ManagedZonePrivateVisibilityConfig =
-  ManagedZonePrivateVisibilityConfig'
-    { _mzpvcNetworks :: !(Maybe [ManagedZonePrivateVisibilityConfigNetwork])
-    , _mzpvcKind     :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ManagedZonePrivateVisibilityConfig' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mzpvcNetworks'
---
--- * 'mzpvcKind'
-managedZonePrivateVisibilityConfig
-    :: ManagedZonePrivateVisibilityConfig
-managedZonePrivateVisibilityConfig =
-  ManagedZonePrivateVisibilityConfig'
-    { _mzpvcNetworks = Nothing
-    , _mzpvcKind = "dns#managedZonePrivateVisibilityConfig"
-    }
-
-
--- | The list of VPC networks that can see this zone.
-mzpvcNetworks :: Lens' ManagedZonePrivateVisibilityConfig [ManagedZonePrivateVisibilityConfigNetwork]
-mzpvcNetworks
-  = lens _mzpvcNetworks
-      (\ s a -> s{_mzpvcNetworks = a})
-      . _Default
-      . _Coerce
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dns#managedZonePrivateVisibilityConfig\".
-mzpvcKind :: Lens' ManagedZonePrivateVisibilityConfig Text
-mzpvcKind
-  = lens _mzpvcKind (\ s a -> s{_mzpvcKind = a})
-
-instance FromJSON ManagedZonePrivateVisibilityConfig
-         where
-        parseJSON
-          = withObject "ManagedZonePrivateVisibilityConfig"
-              (\ o ->
-                 ManagedZonePrivateVisibilityConfig' <$>
-                   (o .:? "networks" .!= mempty) <*>
-                     (o .:? "kind" .!=
-                        "dns#managedZonePrivateVisibilityConfig"))
-
-instance ToJSON ManagedZonePrivateVisibilityConfig
-         where
-        toJSON ManagedZonePrivateVisibilityConfig'{..}
-          = object
-              (catMaybes
-                 [("networks" .=) <$> _mzpvcNetworks,
-                  Just ("kind" .= _mzpvcKind)])
-
---
--- /See:/ 'managedZoneDNSSecConfig' smart constructor.
-data ManagedZoneDNSSecConfig =
-  ManagedZoneDNSSecConfig'
-    { _mzdscState           :: !(Maybe ManagedZoneDNSSecConfigState)
-    , _mzdscKind            :: !Text
-    , _mzdscDefaultKeySpecs :: !(Maybe [DNSKeySpec])
-    , _mzdscNonExistence    :: !(Maybe ManagedZoneDNSSecConfigNonExistence)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ManagedZoneDNSSecConfig' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mzdscState'
---
--- * 'mzdscKind'
---
--- * 'mzdscDefaultKeySpecs'
---
--- * 'mzdscNonExistence'
-managedZoneDNSSecConfig
-    :: ManagedZoneDNSSecConfig
-managedZoneDNSSecConfig =
-  ManagedZoneDNSSecConfig'
-    { _mzdscState = Nothing
-    , _mzdscKind = "dns#managedZoneDnsSecConfig"
-    , _mzdscDefaultKeySpecs = Nothing
-    , _mzdscNonExistence = Nothing
-    }
-
-
--- | Specifies whether DNSSEC is enabled, and what mode it is in.
-mzdscState :: Lens' ManagedZoneDNSSecConfig (Maybe ManagedZoneDNSSecConfigState)
-mzdscState
-  = lens _mzdscState (\ s a -> s{_mzdscState = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dns#managedZoneDnsSecConfig\".
-mzdscKind :: Lens' ManagedZoneDNSSecConfig Text
-mzdscKind
-  = lens _mzdscKind (\ s a -> s{_mzdscKind = a})
-
--- | Specifies parameters that will be used for generating initial DnsKeys
--- for this ManagedZone. Output only while state is not OFF.
-mzdscDefaultKeySpecs :: Lens' ManagedZoneDNSSecConfig [DNSKeySpec]
-mzdscDefaultKeySpecs
-  = lens _mzdscDefaultKeySpecs
-      (\ s a -> s{_mzdscDefaultKeySpecs = a})
-      . _Default
-      . _Coerce
-
--- | Specifies the mechanism used to provide authenticated
--- denial-of-existence responses. Output only while state is not OFF.
-mzdscNonExistence :: Lens' ManagedZoneDNSSecConfig (Maybe ManagedZoneDNSSecConfigNonExistence)
-mzdscNonExistence
-  = lens _mzdscNonExistence
-      (\ s a -> s{_mzdscNonExistence = a})
-
-instance FromJSON ManagedZoneDNSSecConfig where
-        parseJSON
-          = withObject "ManagedZoneDNSSecConfig"
-              (\ o ->
-                 ManagedZoneDNSSecConfig' <$>
-                   (o .:? "state") <*>
-                     (o .:? "kind" .!= "dns#managedZoneDnsSecConfig")
-                     <*> (o .:? "defaultKeySpecs" .!= mempty)
-                     <*> (o .:? "nonExistence"))
-
-instance ToJSON ManagedZoneDNSSecConfig where
-        toJSON ManagedZoneDNSSecConfig'{..}
-          = object
-              (catMaybes
-                 [("state" .=) <$> _mzdscState,
-                  Just ("kind" .= _mzdscKind),
-                  ("defaultKeySpecs" .=) <$> _mzdscDefaultKeySpecs,
-                  ("nonExistence" .=) <$> _mzdscNonExistence])
-
--- | A unit of data that will be returned by the DNS servers.
---
--- /See:/ 'resourceRecordSet' smart constructor.
-data ResourceRecordSet =
-  ResourceRecordSet'
-    { _rrsTtl              :: !(Maybe (Textual Int32))
-    , _rrsKind             :: !Text
-    , _rrsSignatureRrDatas :: !(Maybe [Text])
-    , _rrsName             :: !(Maybe Text)
-    , _rrsType             :: !(Maybe Text)
-    , _rrsRrDatas          :: !(Maybe [Text])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ResourceRecordSet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rrsTtl'
---
--- * 'rrsKind'
---
--- * 'rrsSignatureRrDatas'
---
--- * 'rrsName'
---
--- * 'rrsType'
---
--- * 'rrsRrDatas'
-resourceRecordSet
-    :: ResourceRecordSet
-resourceRecordSet =
-  ResourceRecordSet'
-    { _rrsTtl = Nothing
-    , _rrsKind = "dns#resourceRecordSet"
-    , _rrsSignatureRrDatas = Nothing
-    , _rrsName = Nothing
-    , _rrsType = Nothing
-    , _rrsRrDatas = Nothing
-    }
-
-
--- | Number of seconds that this ResourceRecordSet can be cached by
--- resolvers.
-rrsTtl :: Lens' ResourceRecordSet (Maybe Int32)
-rrsTtl
-  = lens _rrsTtl (\ s a -> s{_rrsTtl = a}) .
-      mapping _Coerce
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dns#resourceRecordSet\".
-rrsKind :: Lens' ResourceRecordSet Text
-rrsKind = lens _rrsKind (\ s a -> s{_rrsKind = a})
-
--- | As defined in RFC 4034 (section 3.2).
-rrsSignatureRrDatas :: Lens' ResourceRecordSet [Text]
-rrsSignatureRrDatas
-  = lens _rrsSignatureRrDatas
-      (\ s a -> s{_rrsSignatureRrDatas = a})
-      . _Default
-      . _Coerce
-
--- | For example, www.example.com.
-rrsName :: Lens' ResourceRecordSet (Maybe Text)
-rrsName = lens _rrsName (\ s a -> s{_rrsName = a})
-
--- | The identifier of a supported record type. See the list of Supported DNS
--- record types.
-rrsType :: Lens' ResourceRecordSet (Maybe Text)
-rrsType = lens _rrsType (\ s a -> s{_rrsType = a})
-
--- | As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see
--- examples.
-rrsRrDatas :: Lens' ResourceRecordSet [Text]
-rrsRrDatas
-  = lens _rrsRrDatas (\ s a -> s{_rrsRrDatas = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON ResourceRecordSet where
-        parseJSON
-          = withObject "ResourceRecordSet"
-              (\ o ->
-                 ResourceRecordSet' <$>
-                   (o .:? "ttl") <*>
-                     (o .:? "kind" .!= "dns#resourceRecordSet")
-                     <*> (o .:? "signatureRrdatas" .!= mempty)
-                     <*> (o .:? "name")
-                     <*> (o .:? "type")
-                     <*> (o .:? "rrdatas" .!= mempty))
-
-instance ToJSON ResourceRecordSet where
-        toJSON ResourceRecordSet'{..}
-          = object
-              (catMaybes
-                 [("ttl" .=) <$> _rrsTtl, Just ("kind" .= _rrsKind),
-                  ("signatureRrdatas" .=) <$> _rrsSignatureRrDatas,
-                  ("name" .=) <$> _rrsName, ("type" .=) <$> _rrsType,
-                  ("rrdatas" .=) <$> _rrsRrDatas])
-
--- | A zone is a subtree of the DNS namespace under one administrative
--- responsibility. A ManagedZone is a resource that represents a DNS zone
--- hosted by the Cloud DNS service.
---
--- /See:/ 'managedZone' smart constructor.
-data ManagedZone =
-  ManagedZone'
-    { _mzCreationTime            :: !(Maybe Text)
-    , _mzKind                    :: !Text
-    , _mzNameServerSet           :: !(Maybe Text)
-    , _mzVisibility              :: !(Maybe ManagedZoneVisibility)
-    , _mzName                    :: !(Maybe Text)
-    , _mzId                      :: !(Maybe (Textual Word64))
-    , _mzLabels                  :: !(Maybe ManagedZoneLabels)
-    , _mzDNSName                 :: !(Maybe Text)
-    , _mzDescription             :: !(Maybe Text)
-    , _mzDNSsecConfig            :: !(Maybe ManagedZoneDNSSecConfig)
-    , _mzNameServers             :: !(Maybe [Text])
-    , _mzPrivateVisibilityConfig :: !(Maybe ManagedZonePrivateVisibilityConfig)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ManagedZone' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mzCreationTime'
---
--- * 'mzKind'
---
--- * 'mzNameServerSet'
---
--- * 'mzVisibility'
---
--- * 'mzName'
---
--- * 'mzId'
---
--- * 'mzLabels'
---
--- * 'mzDNSName'
---
--- * 'mzDescription'
---
--- * 'mzDNSsecConfig'
---
--- * 'mzNameServers'
---
--- * 'mzPrivateVisibilityConfig'
-managedZone
-    :: ManagedZone
-managedZone =
-  ManagedZone'
-    { _mzCreationTime = Nothing
-    , _mzKind = "dns#managedZone"
-    , _mzNameServerSet = Nothing
-    , _mzVisibility = Nothing
-    , _mzName = Nothing
-    , _mzId = Nothing
-    , _mzLabels = Nothing
-    , _mzDNSName = Nothing
-    , _mzDescription = Nothing
-    , _mzDNSsecConfig = Nothing
-    , _mzNameServers = Nothing
-    , _mzPrivateVisibilityConfig = Nothing
-    }
-
-
--- | The time that this resource was created on the server. This is in
--- RFC3339 text format. Output only.
-mzCreationTime :: Lens' ManagedZone (Maybe Text)
-mzCreationTime
-  = lens _mzCreationTime
-      (\ s a -> s{_mzCreationTime = a})
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dns#managedZone\".
-mzKind :: Lens' ManagedZone Text
-mzKind = lens _mzKind (\ s a -> s{_mzKind = a})
-
--- | Optionally specifies the NameServerSet for this ManagedZone. A
--- NameServerSet is a set of DNS name servers that all host the same
--- ManagedZones. Most users will leave this field unset.
-mzNameServerSet :: Lens' ManagedZone (Maybe Text)
-mzNameServerSet
-  = lens _mzNameServerSet
-      (\ s a -> s{_mzNameServerSet = a})
-
--- | The zone\'s visibility: public zones are exposed to the Internet, while
--- private zones are visible only to Virtual Private Cloud resources.
-mzVisibility :: Lens' ManagedZone (Maybe ManagedZoneVisibility)
-mzVisibility
-  = lens _mzVisibility (\ s a -> s{_mzVisibility = a})
-
--- | User assigned name for this resource. Must be unique within the project.
--- The name must be 1-63 characters long, must begin with a letter, end
--- with a letter or digit, and only contain lowercase letters, digits or
--- dashes.
-mzName :: Lens' ManagedZone (Maybe Text)
-mzName = lens _mzName (\ s a -> s{_mzName = a})
-
--- | Unique identifier for the resource; defined by the server (output only)
-mzId :: Lens' ManagedZone (Maybe Word64)
-mzId
-  = lens _mzId (\ s a -> s{_mzId = a}) .
-      mapping _Coerce
-
--- | User labels.
-mzLabels :: Lens' ManagedZone (Maybe ManagedZoneLabels)
-mzLabels = lens _mzLabels (\ s a -> s{_mzLabels = a})
-
--- | The DNS name of this managed zone, for instance \"example.com.\".
-mzDNSName :: Lens' ManagedZone (Maybe Text)
-mzDNSName
-  = lens _mzDNSName (\ s a -> s{_mzDNSName = a})
-
--- | A mutable string of at most 1024 characters associated with this
--- resource for the user\'s convenience. Has no effect on the managed
--- zone\'s function.
-mzDescription :: Lens' ManagedZone (Maybe Text)
-mzDescription
-  = lens _mzDescription
-      (\ s a -> s{_mzDescription = a})
-
--- | DNSSEC configuration.
-mzDNSsecConfig :: Lens' ManagedZone (Maybe ManagedZoneDNSSecConfig)
-mzDNSsecConfig
-  = lens _mzDNSsecConfig
-      (\ s a -> s{_mzDNSsecConfig = a})
-
--- | Delegate your managed_zone to these virtual name servers; defined by the
--- server (output only)
-mzNameServers :: Lens' ManagedZone [Text]
-mzNameServers
-  = lens _mzNameServers
-      (\ s a -> s{_mzNameServers = a})
-      . _Default
-      . _Coerce
-
--- | For privately visible zones, the set of Virtual Private Cloud resources
--- that the zone is visible from.
-mzPrivateVisibilityConfig :: Lens' ManagedZone (Maybe ManagedZonePrivateVisibilityConfig)
-mzPrivateVisibilityConfig
-  = lens _mzPrivateVisibilityConfig
-      (\ s a -> s{_mzPrivateVisibilityConfig = a})
-
-instance FromJSON ManagedZone where
-        parseJSON
-          = withObject "ManagedZone"
-              (\ o ->
-                 ManagedZone' <$>
-                   (o .:? "creationTime") <*>
-                     (o .:? "kind" .!= "dns#managedZone")
-                     <*> (o .:? "nameServerSet")
-                     <*> (o .:? "visibility")
-                     <*> (o .:? "name")
-                     <*> (o .:? "id")
-                     <*> (o .:? "labels")
-                     <*> (o .:? "dnsName")
-                     <*> (o .:? "description")
-                     <*> (o .:? "dnssecConfig")
-                     <*> (o .:? "nameServers" .!= mempty)
-                     <*> (o .:? "privateVisibilityConfig"))
-
-instance ToJSON ManagedZone where
-        toJSON ManagedZone'{..}
-          = object
-              (catMaybes
-                 [("creationTime" .=) <$> _mzCreationTime,
-                  Just ("kind" .= _mzKind),
-                  ("nameServerSet" .=) <$> _mzNameServerSet,
-                  ("visibility" .=) <$> _mzVisibility,
-                  ("name" .=) <$> _mzName, ("id" .=) <$> _mzId,
-                  ("labels" .=) <$> _mzLabels,
-                  ("dnsName" .=) <$> _mzDNSName,
-                  ("description" .=) <$> _mzDescription,
-                  ("dnssecConfig" .=) <$> _mzDNSsecConfig,
-                  ("nameServers" .=) <$> _mzNameServers,
-                  ("privateVisibilityConfig" .=) <$>
-                    _mzPrivateVisibilityConfig])
-
--- | User labels.
---
--- /See:/ 'managedZoneLabels' smart constructor.
-newtype ManagedZoneLabels =
-  ManagedZoneLabels'
-    { _mzlAddtional :: HashMap Text Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ManagedZoneLabels' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mzlAddtional'
-managedZoneLabels
-    :: HashMap Text Text -- ^ 'mzlAddtional'
-    -> ManagedZoneLabels
-managedZoneLabels pMzlAddtional_ =
-  ManagedZoneLabels' {_mzlAddtional = _Coerce # pMzlAddtional_}
-
-
-mzlAddtional :: Lens' ManagedZoneLabels (HashMap Text Text)
-mzlAddtional
-  = lens _mzlAddtional (\ s a -> s{_mzlAddtional = a})
-      . _Coerce
-
-instance FromJSON ManagedZoneLabels where
-        parseJSON
-          = withObject "ManagedZoneLabels"
-              (\ o -> ManagedZoneLabels' <$> (parseJSONObject o))
-
-instance ToJSON ManagedZoneLabels where
-        toJSON = toJSON . _mzlAddtional
-
--- | Limits associated with a Project.
---
--- /See:/ 'quota' smart constructor.
-data Quota =
-  Quota'
-    { _qRrSetDeletionsPerChange  :: !(Maybe (Textual Int32))
-    , _qWhiteListedKeySpecs      :: !(Maybe [DNSKeySpec])
-    , _qRrSetsPerManagedZone     :: !(Maybe (Textual Int32))
-    , _qKind                     :: !Text
-    , _qResourceRecordsPerRrSet  :: !(Maybe (Textual Int32))
-    , _qManagedZonesPerNetwork   :: !(Maybe (Textual Int32))
-    , _qRrSetAdditionsPerChange  :: !(Maybe (Textual Int32))
-    , _qManagedZones             :: !(Maybe (Textual Int32))
-    , _qTotalRrDataSizePerChange :: !(Maybe (Textual Int32))
-    , _qDNSKeysPerManagedZone    :: !(Maybe (Textual Int32))
-    , _qNetworksPerManagedZone   :: !(Maybe (Textual Int32))
-    }
-  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:
---
--- * 'qRrSetDeletionsPerChange'
---
--- * 'qWhiteListedKeySpecs'
---
--- * 'qRrSetsPerManagedZone'
---
--- * 'qKind'
---
--- * 'qResourceRecordsPerRrSet'
---
--- * 'qManagedZonesPerNetwork'
---
--- * 'qRrSetAdditionsPerChange'
---
--- * 'qManagedZones'
---
--- * 'qTotalRrDataSizePerChange'
---
--- * 'qDNSKeysPerManagedZone'
---
--- * 'qNetworksPerManagedZone'
-quota
-    :: Quota
-quota =
-  Quota'
-    { _qRrSetDeletionsPerChange = Nothing
-    , _qWhiteListedKeySpecs = Nothing
-    , _qRrSetsPerManagedZone = Nothing
-    , _qKind = "dns#quota"
-    , _qResourceRecordsPerRrSet = Nothing
-    , _qManagedZonesPerNetwork = Nothing
-    , _qRrSetAdditionsPerChange = Nothing
-    , _qManagedZones = Nothing
-    , _qTotalRrDataSizePerChange = Nothing
-    , _qDNSKeysPerManagedZone = Nothing
-    , _qNetworksPerManagedZone = Nothing
-    }
-
-
--- | Maximum allowed number of ResourceRecordSets to delete per
--- ChangesCreateRequest.
-qRrSetDeletionsPerChange :: Lens' Quota (Maybe Int32)
-qRrSetDeletionsPerChange
-  = lens _qRrSetDeletionsPerChange
-      (\ s a -> s{_qRrSetDeletionsPerChange = a})
-      . mapping _Coerce
-
--- | DNSSEC algorithm and key length types that can be used for DnsKeys.
-qWhiteListedKeySpecs :: Lens' Quota [DNSKeySpec]
-qWhiteListedKeySpecs
-  = lens _qWhiteListedKeySpecs
-      (\ s a -> s{_qWhiteListedKeySpecs = a})
-      . _Default
-      . _Coerce
-
--- | Maximum allowed number of ResourceRecordSets per zone in the project.
-qRrSetsPerManagedZone :: Lens' Quota (Maybe Int32)
-qRrSetsPerManagedZone
-  = lens _qRrSetsPerManagedZone
-      (\ s a -> s{_qRrSetsPerManagedZone = a})
-      . mapping _Coerce
-
--- | Identifies what kind of resource this is. Value: the fixed string
--- \"dns#quota\".
-qKind :: Lens' Quota Text
-qKind = lens _qKind (\ s a -> s{_qKind = a})
-
--- | Maximum allowed number of ResourceRecords per ResourceRecordSet.
-qResourceRecordsPerRrSet :: Lens' Quota (Maybe Int32)
-qResourceRecordsPerRrSet
-  = lens _qResourceRecordsPerRrSet
-      (\ s a -> s{_qResourceRecordsPerRrSet = a})
-      . mapping _Coerce
-
--- | Maximum allowed number of managed zones which can be attached to a
--- network.
-qManagedZonesPerNetwork :: Lens' Quota (Maybe Int32)
-qManagedZonesPerNetwork
-  = lens _qManagedZonesPerNetwork
-      (\ s a -> s{_qManagedZonesPerNetwork = a})
-      . mapping _Coerce
-
--- | Maximum allowed number of ResourceRecordSets to add per
--- ChangesCreateRequest.
-qRrSetAdditionsPerChange :: Lens' Quota (Maybe Int32)
-qRrSetAdditionsPerChange
-  = lens _qRrSetAdditionsPerChange
-      (\ s a -> s{_qRrSetAdditionsPerChange = a})
-      . mapping _Coerce
-
--- | Maximum allowed number of managed zones in the project.
-qManagedZones :: Lens' Quota (Maybe Int32)
-qManagedZones
-  = lens _qManagedZones
-      (\ s a -> s{_qManagedZones = a})
-      . mapping _Coerce
-
--- | Maximum allowed size for total rrdata in one ChangesCreateRequest in
--- bytes.
-qTotalRrDataSizePerChange :: Lens' Quota (Maybe Int32)
-qTotalRrDataSizePerChange
-  = lens _qTotalRrDataSizePerChange
-      (\ s a -> s{_qTotalRrDataSizePerChange = a})
-      . mapping _Coerce
-
--- | Maximum allowed number of DnsKeys per ManagedZone.
-qDNSKeysPerManagedZone :: Lens' Quota (Maybe Int32)
-qDNSKeysPerManagedZone
-  = lens _qDNSKeysPerManagedZone
-      (\ s a -> s{_qDNSKeysPerManagedZone = a})
-      . mapping _Coerce
-
--- | Maximum allowed number of networks to which a privately scoped zone can
--- be attached.
-qNetworksPerManagedZone :: Lens' Quota (Maybe Int32)
-qNetworksPerManagedZone
-  = lens _qNetworksPerManagedZone
-      (\ s a -> s{_qNetworksPerManagedZone = a})
-      . mapping _Coerce
-
-instance FromJSON Quota where
-        parseJSON
-          = withObject "Quota"
-              (\ o ->
-                 Quota' <$>
-                   (o .:? "rrsetDeletionsPerChange") <*>
-                     (o .:? "whitelistedKeySpecs" .!= mempty)
-                     <*> (o .:? "rrsetsPerManagedZone")
-                     <*> (o .:? "kind" .!= "dns#quota")
-                     <*> (o .:? "resourceRecordsPerRrset")
-                     <*> (o .:? "managedZonesPerNetwork")
-                     <*> (o .:? "rrsetAdditionsPerChange")
-                     <*> (o .:? "managedZones")
-                     <*> (o .:? "totalRrdataSizePerChange")
-                     <*> (o .:? "dnsKeysPerManagedZone")
-                     <*> (o .:? "networksPerManagedZone"))
-
-instance ToJSON Quota where
-        toJSON Quota'{..}
-          = object
-              (catMaybes
-                 [("rrsetDeletionsPerChange" .=) <$>
-                    _qRrSetDeletionsPerChange,
-                  ("whitelistedKeySpecs" .=) <$> _qWhiteListedKeySpecs,
-                  ("rrsetsPerManagedZone" .=) <$>
-                    _qRrSetsPerManagedZone,
-                  Just ("kind" .= _qKind),
-                  ("resourceRecordsPerRrset" .=) <$>
-                    _qResourceRecordsPerRrSet,
-                  ("managedZonesPerNetwork" .=) <$>
-                    _qManagedZonesPerNetwork,
-                  ("rrsetAdditionsPerChange" .=) <$>
-                    _qRrSetAdditionsPerChange,
-                  ("managedZones" .=) <$> _qManagedZones,
-                  ("totalRrdataSizePerChange" .=) <$>
-                    _qTotalRrDataSizePerChange,
-                  ("dnsKeysPerManagedZone" .=) <$>
-                    _qDNSKeysPerManagedZone,
-                  ("networksPerManagedZone" .=) <$>
-                    _qNetworksPerManagedZone])
-
---
--- /See:/ 'dnsKeyDigest' smart constructor.
-data DNSKeyDigest =
-  DNSKeyDigest'
-    { _dkdDigest :: !(Maybe Text)
-    , _dkdType   :: !(Maybe DNSKeyDigestType)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DNSKeyDigest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dkdDigest'
---
--- * 'dkdType'
-dnsKeyDigest
-    :: DNSKeyDigest
-dnsKeyDigest = DNSKeyDigest' {_dkdDigest = Nothing, _dkdType = Nothing}
-
-
--- | The base-16 encoded bytes of this digest. Suitable for use in a DS
--- resource record.
-dkdDigest :: Lens' DNSKeyDigest (Maybe Text)
-dkdDigest
-  = lens _dkdDigest (\ s a -> s{_dkdDigest = a})
-
--- | Specifies the algorithm used to calculate this digest.
-dkdType :: Lens' DNSKeyDigest (Maybe DNSKeyDigestType)
-dkdType = lens _dkdType (\ s a -> s{_dkdType = a})
-
-instance FromJSON DNSKeyDigest where
-        parseJSON
-          = withObject "DNSKeyDigest"
-              (\ o ->
-                 DNSKeyDigest' <$>
-                   (o .:? "digest") <*> (o .:? "type"))
-
-instance ToJSON DNSKeyDigest where
-        toJSON DNSKeyDigest'{..}
-          = object
-              (catMaybes
-                 [("digest" .=) <$> _dkdDigest,
-                  ("type" .=) <$> _dkdType])
-
---
--- /See:/ 'managedZonesListResponse' smart constructor.
-data ManagedZonesListResponse =
-  ManagedZonesListResponse'
-    { _mzlrNextPageToken :: !(Maybe Text)
-    , _mzlrKind          :: !Text
-    , _mzlrHeader        :: !(Maybe ResponseHeader)
-    , _mzlrManagedZones  :: !(Maybe [ManagedZone])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ManagedZonesListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mzlrNextPageToken'
---
--- * 'mzlrKind'
---
--- * 'mzlrHeader'
---
--- * 'mzlrManagedZones'
-managedZonesListResponse
-    :: ManagedZonesListResponse
-managedZonesListResponse =
-  ManagedZonesListResponse'
-    { _mzlrNextPageToken = Nothing
-    , _mzlrKind = "dns#managedZonesListResponse"
-    , _mzlrHeader = Nothing
-    , _mzlrManagedZones = Nothing
-    }
-
-
--- | The presence of this field indicates that there exist more results
--- following your last page of results in pagination order. To fetch them,
--- make another list request using this value as your page token. In this
--- way you can retrieve the complete contents of even very large
--- collections one page at a time. However, if the contents of the
--- collection change between the first and last paginated list request, the
--- set of all elements returned will be an inconsistent view of the
--- collection. There is no way to retrieve a consistent snapshot of a
--- collection larger than the maximum page size.
-mzlrNextPageToken :: Lens' ManagedZonesListResponse (Maybe Text)
-mzlrNextPageToken
-  = lens _mzlrNextPageToken
-      (\ s a -> s{_mzlrNextPageToken = a})
-
--- | Type of resource.
-mzlrKind :: Lens' ManagedZonesListResponse Text
-mzlrKind = lens _mzlrKind (\ s a -> s{_mzlrKind = a})
-
-mzlrHeader :: Lens' ManagedZonesListResponse (Maybe ResponseHeader)
-mzlrHeader
-  = lens _mzlrHeader (\ s a -> s{_mzlrHeader = a})
-
--- | The managed zone resources.
-mzlrManagedZones :: Lens' ManagedZonesListResponse [ManagedZone]
-mzlrManagedZones
-  = lens _mzlrManagedZones
-      (\ s a -> s{_mzlrManagedZones = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON ManagedZonesListResponse where
-        parseJSON
-          = withObject "ManagedZonesListResponse"
-              (\ o ->
-                 ManagedZonesListResponse' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "dns#managedZonesListResponse")
-                     <*> (o .:? "header")
-                     <*> (o .:? "managedZones" .!= mempty))
-
-instance ToJSON ManagedZonesListResponse where
-        toJSON ManagedZonesListResponse'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _mzlrNextPageToken,
-                  Just ("kind" .= _mzlrKind),
-                  ("header" .=) <$> _mzlrHeader,
-                  ("managedZones" .=) <$> _mzlrManagedZones])
diff --git a/gen/Network/Google/DNS/Types/Sum.hs b/gen/Network/Google/DNS/Types/Sum.hs
deleted file mode 100644
--- a/gen/Network/Google/DNS/Types/Sum.hs
+++ /dev/null
@@ -1,387 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE LambdaCase         #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-
--- |
--- Module      : Network.Google.DNS.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.DNS.Types.Sum where
-
-import           Network.Google.Prelude hiding (Bytes)
-
--- | String mnemonic specifying the DNSSEC algorithm of this key.
-data DNSKeySpecAlgorithm
-    = ECDSAP256SHA256
-      -- ^ @ECDSAP256SHA256@
-    | ECDSAP384SHA384
-      -- ^ @ECDSAP384SHA384@
-    | RSASHA1
-      -- ^ @RSASHA1@
-    | RSASHA256
-      -- ^ @RSASHA256@
-    | RSASHA512
-      -- ^ @RSASHA512@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable DNSKeySpecAlgorithm
-
-instance FromHttpApiData DNSKeySpecAlgorithm where
-    parseQueryParam = \case
-        "ECDSAP256SHA256" -> Right ECDSAP256SHA256
-        "ECDSAP384SHA384" -> Right ECDSAP384SHA384
-        "RSASHA1" -> Right RSASHA1
-        "RSASHA256" -> Right RSASHA256
-        "RSASHA512" -> Right RSASHA512
-        x -> Left ("Unable to parse DNSKeySpecAlgorithm from: " <> x)
-
-instance ToHttpApiData DNSKeySpecAlgorithm where
-    toQueryParam = \case
-        ECDSAP256SHA256 -> "ECDSAP256SHA256"
-        ECDSAP384SHA384 -> "ECDSAP384SHA384"
-        RSASHA1 -> "RSASHA1"
-        RSASHA256 -> "RSASHA256"
-        RSASHA512 -> "RSASHA512"
-
-instance FromJSON DNSKeySpecAlgorithm where
-    parseJSON = parseJSONText "DNSKeySpecAlgorithm"
-
-instance ToJSON DNSKeySpecAlgorithm where
-    toJSON = toJSONText
-
--- | Specifies the mechanism used to provide authenticated
--- denial-of-existence responses. Output only while state is not OFF.
-data ManagedZoneDNSSecConfigNonExistence
-    = Nsec
-      -- ^ @NSEC@
-    | NSEC3
-      -- ^ @NSEC3@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ManagedZoneDNSSecConfigNonExistence
-
-instance FromHttpApiData ManagedZoneDNSSecConfigNonExistence where
-    parseQueryParam = \case
-        "NSEC" -> Right Nsec
-        "NSEC3" -> Right NSEC3
-        x -> Left ("Unable to parse ManagedZoneDNSSecConfigNonExistence from: " <> x)
-
-instance ToHttpApiData ManagedZoneDNSSecConfigNonExistence where
-    toQueryParam = \case
-        Nsec -> "NSEC"
-        NSEC3 -> "NSEC3"
-
-instance FromJSON ManagedZoneDNSSecConfigNonExistence where
-    parseJSON = parseJSONText "ManagedZoneDNSSecConfigNonExistence"
-
-instance ToJSON ManagedZoneDNSSecConfigNonExistence where
-    toJSON = toJSONText
-
--- | Specifies whether DNSSEC is enabled, and what mode it is in.
-data ManagedZoneDNSSecConfigState
-    = Off
-      -- ^ @OFF@
-    | ON
-      -- ^ @ON@
-    | Transfer
-      -- ^ @TRANSFER@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ManagedZoneDNSSecConfigState
-
-instance FromHttpApiData ManagedZoneDNSSecConfigState where
-    parseQueryParam = \case
-        "OFF" -> Right Off
-        "ON" -> Right ON
-        "TRANSFER" -> Right Transfer
-        x -> Left ("Unable to parse ManagedZoneDNSSecConfigState from: " <> x)
-
-instance ToHttpApiData ManagedZoneDNSSecConfigState where
-    toQueryParam = \case
-        Off -> "OFF"
-        ON -> "ON"
-        Transfer -> "TRANSFER"
-
-instance FromJSON ManagedZoneDNSSecConfigState where
-    parseJSON = parseJSONText "ManagedZoneDNSSecConfigState"
-
-instance ToJSON ManagedZoneDNSSecConfigState where
-    toJSON = toJSONText
-
--- | The zone\'s visibility: public zones are exposed to the Internet, while
--- private zones are visible only to Virtual Private Cloud resources.
-data ManagedZoneVisibility
-    = Private
-      -- ^ @PRIVATE@
-    | Public
-      -- ^ @PUBLIC@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ManagedZoneVisibility
-
-instance FromHttpApiData ManagedZoneVisibility where
-    parseQueryParam = \case
-        "PRIVATE" -> Right Private
-        "PUBLIC" -> Right Public
-        x -> Left ("Unable to parse ManagedZoneVisibility from: " <> x)
-
-instance ToHttpApiData ManagedZoneVisibility where
-    toQueryParam = \case
-        Private -> "PRIVATE"
-        Public -> "PUBLIC"
-
-instance FromJSON ManagedZoneVisibility where
-    parseJSON = parseJSONText "ManagedZoneVisibility"
-
-instance ToJSON ManagedZoneVisibility where
-    toJSON = toJSONText
-
--- | Sorting criterion. The only supported value is change sequence.
-data ChangesListSortBy
-    = ChangeSequence
-      -- ^ @CHANGE_SEQUENCE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ChangesListSortBy
-
-instance FromHttpApiData ChangesListSortBy where
-    parseQueryParam = \case
-        "CHANGE_SEQUENCE" -> Right ChangeSequence
-        x -> Left ("Unable to parse ChangesListSortBy from: " <> x)
-
-instance ToHttpApiData ChangesListSortBy where
-    toQueryParam = \case
-        ChangeSequence -> "CHANGE_SEQUENCE"
-
-instance FromJSON ChangesListSortBy where
-    parseJSON = parseJSONText "ChangesListSortBy"
-
-instance ToJSON ChangesListSortBy where
-    toJSON = toJSONText
-
--- | Specifies the algorithm used to calculate this digest.
-data DNSKeyDigestType
-    = SHA1
-      -- ^ @SHA1@
-    | SHA256
-      -- ^ @SHA256@
-    | SHA384
-      -- ^ @SHA384@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable DNSKeyDigestType
-
-instance FromHttpApiData DNSKeyDigestType where
-    parseQueryParam = \case
-        "SHA1" -> Right SHA1
-        "SHA256" -> Right SHA256
-        "SHA384" -> Right SHA384
-        x -> Left ("Unable to parse DNSKeyDigestType from: " <> x)
-
-instance ToHttpApiData DNSKeyDigestType where
-    toQueryParam = \case
-        SHA1 -> "SHA1"
-        SHA256 -> "SHA256"
-        SHA384 -> "SHA384"
-
-instance FromJSON DNSKeyDigestType where
-    parseJSON = parseJSONText "DNSKeyDigestType"
-
-instance ToJSON DNSKeyDigestType where
-    toJSON = toJSONText
-
--- | Status of the operation. Can be one of the following: \"PENDING\" or
--- \"DONE\" (output only). A status of \"DONE\" means that the request to
--- update the authoritative servers has been sent, but the servers might
--- not be updated yet.
-data OperationStatus
-    = Done
-      -- ^ @DONE@
-    | Pending
-      -- ^ @PENDING@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable OperationStatus
-
-instance FromHttpApiData OperationStatus where
-    parseQueryParam = \case
-        "DONE" -> Right Done
-        "PENDING" -> Right Pending
-        x -> Left ("Unable to parse OperationStatus from: " <> x)
-
-instance ToHttpApiData OperationStatus where
-    toQueryParam = \case
-        Done -> "DONE"
-        Pending -> "PENDING"
-
-instance FromJSON OperationStatus where
-    parseJSON = parseJSONText "OperationStatus"
-
-instance ToJSON OperationStatus where
-    toJSON = toJSONText
-
--- | String mnemonic specifying the DNSSEC algorithm of this key. Immutable
--- after creation time.
-data DNSKeyAlgorithm
-    = DKAECDSAP256SHA256
-      -- ^ @ECDSAP256SHA256@
-    | DKAECDSAP384SHA384
-      -- ^ @ECDSAP384SHA384@
-    | DKARSASHA1
-      -- ^ @RSASHA1@
-    | DKARSASHA256
-      -- ^ @RSASHA256@
-    | DKARSASHA512
-      -- ^ @RSASHA512@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable DNSKeyAlgorithm
-
-instance FromHttpApiData DNSKeyAlgorithm where
-    parseQueryParam = \case
-        "ECDSAP256SHA256" -> Right DKAECDSAP256SHA256
-        "ECDSAP384SHA384" -> Right DKAECDSAP384SHA384
-        "RSASHA1" -> Right DKARSASHA1
-        "RSASHA256" -> Right DKARSASHA256
-        "RSASHA512" -> Right DKARSASHA512
-        x -> Left ("Unable to parse DNSKeyAlgorithm from: " <> x)
-
-instance ToHttpApiData DNSKeyAlgorithm where
-    toQueryParam = \case
-        DKAECDSAP256SHA256 -> "ECDSAP256SHA256"
-        DKAECDSAP384SHA384 -> "ECDSAP384SHA384"
-        DKARSASHA1 -> "RSASHA1"
-        DKARSASHA256 -> "RSASHA256"
-        DKARSASHA512 -> "RSASHA512"
-
-instance FromJSON DNSKeyAlgorithm where
-    parseJSON = parseJSONText "DNSKeyAlgorithm"
-
-instance ToJSON DNSKeyAlgorithm where
-    toJSON = toJSONText
-
--- | Specifies whether this is a key signing key (KSK) or a zone signing key
--- (ZSK). Key signing keys have the Secure Entry Point flag set and, when
--- active, will only be used to sign resource record sets of type DNSKEY.
--- Zone signing keys do not have the Secure Entry Point flag set and will
--- be used to sign all other types of resource record sets.
-data DNSKeySpecKeyType
-    = KeySigning
-      -- ^ @KEY_SIGNING@
-    | ZoneSigning
-      -- ^ @ZONE_SIGNING@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable DNSKeySpecKeyType
-
-instance FromHttpApiData DNSKeySpecKeyType where
-    parseQueryParam = \case
-        "KEY_SIGNING" -> Right KeySigning
-        "ZONE_SIGNING" -> Right ZoneSigning
-        x -> Left ("Unable to parse DNSKeySpecKeyType from: " <> x)
-
-instance ToHttpApiData DNSKeySpecKeyType where
-    toQueryParam = \case
-        KeySigning -> "KEY_SIGNING"
-        ZoneSigning -> "ZONE_SIGNING"
-
-instance FromJSON DNSKeySpecKeyType where
-    parseJSON = parseJSONText "DNSKeySpecKeyType"
-
-instance ToJSON DNSKeySpecKeyType where
-    toJSON = toJSONText
-
--- | Status of the operation (output only). A status of \"done\" means that
--- the request to update the authoritative servers has been sent, but the
--- servers might not be updated yet.
-data ChangeStatus
-    = CSDone
-      -- ^ @DONE@
-    | CSPending
-      -- ^ @PENDING@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ChangeStatus
-
-instance FromHttpApiData ChangeStatus where
-    parseQueryParam = \case
-        "DONE" -> Right CSDone
-        "PENDING" -> Right CSPending
-        x -> Left ("Unable to parse ChangeStatus from: " <> x)
-
-instance ToHttpApiData ChangeStatus where
-    toQueryParam = \case
-        CSDone -> "DONE"
-        CSPending -> "PENDING"
-
-instance FromJSON ChangeStatus where
-    parseJSON = parseJSONText "ChangeStatus"
-
-instance ToJSON ChangeStatus where
-    toJSON = toJSONText
-
--- | One of \"KEY_SIGNING\" or \"ZONE_SIGNING\". Keys of type KEY_SIGNING
--- have the Secure Entry Point flag set and, when active, will be used to
--- sign only resource record sets of type DNSKEY. Otherwise, the Secure
--- Entry Point flag will be cleared and this key will be used to sign only
--- resource record sets of other types. Immutable after creation time.
-data DNSKeyType
-    = DKTKeySigning
-      -- ^ @KEY_SIGNING@
-    | DKTZoneSigning
-      -- ^ @ZONE_SIGNING@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable DNSKeyType
-
-instance FromHttpApiData DNSKeyType where
-    parseQueryParam = \case
-        "KEY_SIGNING" -> Right DKTKeySigning
-        "ZONE_SIGNING" -> Right DKTZoneSigning
-        x -> Left ("Unable to parse DNSKeyType from: " <> x)
-
-instance ToHttpApiData DNSKeyType where
-    toQueryParam = \case
-        DKTKeySigning -> "KEY_SIGNING"
-        DKTZoneSigning -> "ZONE_SIGNING"
-
-instance FromJSON DNSKeyType where
-    parseJSON = parseJSONText "DNSKeyType"
-
-instance ToJSON DNSKeyType where
-    toJSON = toJSONText
-
--- | Sorting criterion. The only supported values are START_TIME and ID.
-data ManagedZoneOperationsListSortBy
-    = ID
-      -- ^ @ID@
-    | StartTime
-      -- ^ @START_TIME@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ManagedZoneOperationsListSortBy
-
-instance FromHttpApiData ManagedZoneOperationsListSortBy where
-    parseQueryParam = \case
-        "ID" -> Right ID
-        "START_TIME" -> Right StartTime
-        x -> Left ("Unable to parse ManagedZoneOperationsListSortBy from: " <> x)
-
-instance ToHttpApiData ManagedZoneOperationsListSortBy where
-    toQueryParam = \case
-        ID -> "ID"
-        StartTime -> "START_TIME"
-
-instance FromJSON ManagedZoneOperationsListSortBy where
-    parseJSON = parseJSONText "ManagedZoneOperationsListSortBy"
-
-instance ToJSON ManagedZoneOperationsListSortBy where
-    toJSON = toJSONText
diff --git a/gen/Network/Google/Resource/DNS/Changes/Create.hs b/gen/Network/Google/Resource/DNS/Changes/Create.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/DNS/Changes/Create.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.DNS.Changes.Create
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Atomically update the ResourceRecordSet collection.
---
--- /See:/ <https://developers.google.com/cloud-dns Google Cloud DNS API Reference> for @dns.changes.create@.
-module Network.Google.Resource.DNS.Changes.Create
-    (
-    -- * REST Resource
-      ChangesCreateResource
-
-    -- * Creating a Request
-    , changesCreate
-    , ChangesCreate
-
-    -- * Request Lenses
-    , ccProject
-    , ccPayload
-    , ccManagedZone
-    , ccClientOperationId
-    ) where
-
-import           Network.Google.DNS.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @dns.changes.create@ method which the
--- 'ChangesCreate' request conforms to.
-type ChangesCreateResource =
-     "dns" :>
-       "v2beta1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "managedZones" :>
-               Capture "managedZone" Text :>
-                 "changes" :>
-                   QueryParam "clientOperationId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] Change :> Post '[JSON] Change
-
--- | Atomically update the ResourceRecordSet collection.
---
--- /See:/ 'changesCreate' smart constructor.
-data ChangesCreate =
-  ChangesCreate'
-    { _ccProject           :: !Text
-    , _ccPayload           :: !Change
-    , _ccManagedZone       :: !Text
-    , _ccClientOperationId :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ChangesCreate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ccProject'
---
--- * 'ccPayload'
---
--- * 'ccManagedZone'
---
--- * 'ccClientOperationId'
-changesCreate
-    :: Text -- ^ 'ccProject'
-    -> Change -- ^ 'ccPayload'
-    -> Text -- ^ 'ccManagedZone'
-    -> ChangesCreate
-changesCreate pCcProject_ pCcPayload_ pCcManagedZone_ =
-  ChangesCreate'
-    { _ccProject = pCcProject_
-    , _ccPayload = pCcPayload_
-    , _ccManagedZone = pCcManagedZone_
-    , _ccClientOperationId = Nothing
-    }
-
-
--- | Identifies the project addressed by this request.
-ccProject :: Lens' ChangesCreate Text
-ccProject
-  = lens _ccProject (\ s a -> s{_ccProject = a})
-
--- | Multipart request metadata.
-ccPayload :: Lens' ChangesCreate Change
-ccPayload
-  = lens _ccPayload (\ s a -> s{_ccPayload = a})
-
--- | Identifies the managed zone addressed by this request. Can be the
--- managed zone name or id.
-ccManagedZone :: Lens' ChangesCreate Text
-ccManagedZone
-  = lens _ccManagedZone
-      (\ s a -> s{_ccManagedZone = a})
-
--- | For mutating operation requests only. An optional identifier specified
--- by the client. Must be unique for operation resources in the Operations
--- collection.
-ccClientOperationId :: Lens' ChangesCreate (Maybe Text)
-ccClientOperationId
-  = lens _ccClientOperationId
-      (\ s a -> s{_ccClientOperationId = a})
-
-instance GoogleRequest ChangesCreate where
-        type Rs ChangesCreate = Change
-        type Scopes ChangesCreate =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/ndev.clouddns.readwrite"]
-        requestClient ChangesCreate'{..}
-          = go _ccProject _ccManagedZone _ccClientOperationId
-              (Just AltJSON)
-              _ccPayload
-              dNSService
-          where go
-                  = buildClient (Proxy :: Proxy ChangesCreateResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/DNS/Changes/Get.hs b/gen/Network/Google/Resource/DNS/Changes/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/DNS/Changes/Get.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.DNS.Changes.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)
---
--- Fetch the representation of an existing Change.
---
--- /See:/ <https://developers.google.com/cloud-dns Google Cloud DNS API Reference> for @dns.changes.get@.
-module Network.Google.Resource.DNS.Changes.Get
-    (
-    -- * REST Resource
-      ChangesGetResource
-
-    -- * Creating a Request
-    , changesGet
-    , ChangesGet
-
-    -- * Request Lenses
-    , cgProject
-    , cgChangeId
-    , cgManagedZone
-    , cgClientOperationId
-    ) where
-
-import           Network.Google.DNS.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @dns.changes.get@ method which the
--- 'ChangesGet' request conforms to.
-type ChangesGetResource =
-     "dns" :>
-       "v2beta1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "managedZones" :>
-               Capture "managedZone" Text :>
-                 "changes" :>
-                   Capture "changeId" Text :>
-                     QueryParam "clientOperationId" Text :>
-                       QueryParam "alt" AltJSON :> Get '[JSON] Change
-
--- | Fetch the representation of an existing Change.
---
--- /See:/ 'changesGet' smart constructor.
-data ChangesGet =
-  ChangesGet'
-    { _cgProject           :: !Text
-    , _cgChangeId          :: !Text
-    , _cgManagedZone       :: !Text
-    , _cgClientOperationId :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ChangesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cgProject'
---
--- * 'cgChangeId'
---
--- * 'cgManagedZone'
---
--- * 'cgClientOperationId'
-changesGet
-    :: Text -- ^ 'cgProject'
-    -> Text -- ^ 'cgChangeId'
-    -> Text -- ^ 'cgManagedZone'
-    -> ChangesGet
-changesGet pCgProject_ pCgChangeId_ pCgManagedZone_ =
-  ChangesGet'
-    { _cgProject = pCgProject_
-    , _cgChangeId = pCgChangeId_
-    , _cgManagedZone = pCgManagedZone_
-    , _cgClientOperationId = Nothing
-    }
-
-
--- | Identifies the project addressed by this request.
-cgProject :: Lens' ChangesGet Text
-cgProject
-  = lens _cgProject (\ s a -> s{_cgProject = a})
-
--- | The identifier of the requested change, from a previous
--- ResourceRecordSetsChangeResponse.
-cgChangeId :: Lens' ChangesGet Text
-cgChangeId
-  = lens _cgChangeId (\ s a -> s{_cgChangeId = a})
-
--- | Identifies the managed zone addressed by this request. Can be the
--- managed zone name or id.
-cgManagedZone :: Lens' ChangesGet Text
-cgManagedZone
-  = lens _cgManagedZone
-      (\ s a -> s{_cgManagedZone = a})
-
--- | For mutating operation requests only. An optional identifier specified
--- by the client. Must be unique for operation resources in the Operations
--- collection.
-cgClientOperationId :: Lens' ChangesGet (Maybe Text)
-cgClientOperationId
-  = lens _cgClientOperationId
-      (\ s a -> s{_cgClientOperationId = a})
-
-instance GoogleRequest ChangesGet where
-        type Rs ChangesGet = Change
-        type Scopes ChangesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/cloud-platform.read-only",
-               "https://www.googleapis.com/auth/ndev.clouddns.readonly",
-               "https://www.googleapis.com/auth/ndev.clouddns.readwrite"]
-        requestClient ChangesGet'{..}
-          = go _cgProject _cgManagedZone _cgChangeId
-              _cgClientOperationId
-              (Just AltJSON)
-              dNSService
-          where go
-                  = buildClient (Proxy :: Proxy ChangesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/DNS/Changes/List.hs b/gen/Network/Google/Resource/DNS/Changes/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/DNS/Changes/List.hs
+++ /dev/null
@@ -1,159 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.DNS.Changes.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)
---
--- Enumerate Changes to a ResourceRecordSet collection.
---
--- /See:/ <https://developers.google.com/cloud-dns Google Cloud DNS API Reference> for @dns.changes.list@.
-module Network.Google.Resource.DNS.Changes.List
-    (
-    -- * REST Resource
-      ChangesListResource
-
-    -- * Creating a Request
-    , changesList
-    , ChangesList
-
-    -- * Request Lenses
-    , clProject
-    , clSortOrder
-    , clPageToken
-    , clManagedZone
-    , clMaxResults
-    , clSortBy
-    ) where
-
-import           Network.Google.DNS.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @dns.changes.list@ method which the
--- 'ChangesList' request conforms to.
-type ChangesListResource =
-     "dns" :>
-       "v2beta1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "managedZones" :>
-               Capture "managedZone" Text :>
-                 "changes" :>
-                   QueryParam "sortOrder" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Int32) :>
-                         QueryParam "sortBy" ChangesListSortBy :>
-                           QueryParam "alt" AltJSON :>
-                             Get '[JSON] ChangesListResponse
-
--- | Enumerate Changes to a ResourceRecordSet collection.
---
--- /See:/ 'changesList' smart constructor.
-data ChangesList =
-  ChangesList'
-    { _clProject     :: !Text
-    , _clSortOrder   :: !(Maybe Text)
-    , _clPageToken   :: !(Maybe Text)
-    , _clManagedZone :: !Text
-    , _clMaxResults  :: !(Maybe (Textual Int32))
-    , _clSortBy      :: !ChangesListSortBy
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ChangesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'clProject'
---
--- * 'clSortOrder'
---
--- * 'clPageToken'
---
--- * 'clManagedZone'
---
--- * 'clMaxResults'
---
--- * 'clSortBy'
-changesList
-    :: Text -- ^ 'clProject'
-    -> Text -- ^ 'clManagedZone'
-    -> ChangesList
-changesList pClProject_ pClManagedZone_ =
-  ChangesList'
-    { _clProject = pClProject_
-    , _clSortOrder = Nothing
-    , _clPageToken = Nothing
-    , _clManagedZone = pClManagedZone_
-    , _clMaxResults = Nothing
-    , _clSortBy = ChangeSequence
-    }
-
-
--- | Identifies the project addressed by this request.
-clProject :: Lens' ChangesList Text
-clProject
-  = lens _clProject (\ s a -> s{_clProject = a})
-
--- | Sorting order direction: \'ascending\' or \'descending\'.
-clSortOrder :: Lens' ChangesList (Maybe Text)
-clSortOrder
-  = lens _clSortOrder (\ s a -> s{_clSortOrder = a})
-
--- | Optional. A tag returned by a previous list request that was truncated.
--- Use this parameter to continue a previous list request.
-clPageToken :: Lens' ChangesList (Maybe Text)
-clPageToken
-  = lens _clPageToken (\ s a -> s{_clPageToken = a})
-
--- | Identifies the managed zone addressed by this request. Can be the
--- managed zone name or id.
-clManagedZone :: Lens' ChangesList Text
-clManagedZone
-  = lens _clManagedZone
-      (\ s a -> s{_clManagedZone = a})
-
--- | Optional. Maximum number of results to be returned. If unspecified, the
--- server will decide how many results to return.
-clMaxResults :: Lens' ChangesList (Maybe Int32)
-clMaxResults
-  = lens _clMaxResults (\ s a -> s{_clMaxResults = a})
-      . mapping _Coerce
-
--- | Sorting criterion. The only supported value is change sequence.
-clSortBy :: Lens' ChangesList ChangesListSortBy
-clSortBy = lens _clSortBy (\ s a -> s{_clSortBy = a})
-
-instance GoogleRequest ChangesList where
-        type Rs ChangesList = ChangesListResponse
-        type Scopes ChangesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/cloud-platform.read-only",
-               "https://www.googleapis.com/auth/ndev.clouddns.readonly",
-               "https://www.googleapis.com/auth/ndev.clouddns.readwrite"]
-        requestClient ChangesList'{..}
-          = go _clProject _clManagedZone _clSortOrder
-              _clPageToken
-              _clMaxResults
-              (Just _clSortBy)
-              (Just AltJSON)
-              dNSService
-          where go
-                  = buildClient (Proxy :: Proxy ChangesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/DNS/DNSKeys/Get.hs b/gen/Network/Google/Resource/DNS/DNSKeys/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/DNS/DNSKeys/Get.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.DNS.DNSKeys.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)
---
--- Fetch the representation of an existing DnsKey.
---
--- /See:/ <https://developers.google.com/cloud-dns Google Cloud DNS API Reference> for @dns.dnsKeys.get@.
-module Network.Google.Resource.DNS.DNSKeys.Get
-    (
-    -- * REST Resource
-      DNSKeysGetResource
-
-    -- * Creating a Request
-    , dnsKeysGet
-    , DNSKeysGet
-
-    -- * Request Lenses
-    , dkgProject
-    , dkgDigestType
-    , dkgDNSKeyId
-    , dkgManagedZone
-    , dkgClientOperationId
-    ) where
-
-import           Network.Google.DNS.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @dns.dnsKeys.get@ method which the
--- 'DNSKeysGet' request conforms to.
-type DNSKeysGetResource =
-     "dns" :>
-       "v2beta1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "managedZones" :>
-               Capture "managedZone" Text :>
-                 "dnsKeys" :>
-                   Capture "dnsKeyId" Text :>
-                     QueryParam "digestType" Text :>
-                       QueryParam "clientOperationId" Text :>
-                         QueryParam "alt" AltJSON :> Get '[JSON] DNSKey
-
--- | Fetch the representation of an existing DnsKey.
---
--- /See:/ 'dnsKeysGet' smart constructor.
-data DNSKeysGet =
-  DNSKeysGet'
-    { _dkgProject           :: !Text
-    , _dkgDigestType        :: !(Maybe Text)
-    , _dkgDNSKeyId          :: !Text
-    , _dkgManagedZone       :: !Text
-    , _dkgClientOperationId :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DNSKeysGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dkgProject'
---
--- * 'dkgDigestType'
---
--- * 'dkgDNSKeyId'
---
--- * 'dkgManagedZone'
---
--- * 'dkgClientOperationId'
-dnsKeysGet
-    :: Text -- ^ 'dkgProject'
-    -> Text -- ^ 'dkgDNSKeyId'
-    -> Text -- ^ 'dkgManagedZone'
-    -> DNSKeysGet
-dnsKeysGet pDkgProject_ pDkgDNSKeyId_ pDkgManagedZone_ =
-  DNSKeysGet'
-    { _dkgProject = pDkgProject_
-    , _dkgDigestType = Nothing
-    , _dkgDNSKeyId = pDkgDNSKeyId_
-    , _dkgManagedZone = pDkgManagedZone_
-    , _dkgClientOperationId = Nothing
-    }
-
-
--- | Identifies the project addressed by this request.
-dkgProject :: Lens' DNSKeysGet Text
-dkgProject
-  = lens _dkgProject (\ s a -> s{_dkgProject = a})
-
--- | An optional comma-separated list of digest types to compute and display
--- for key signing keys. If omitted, the recommended digest type will be
--- computed and displayed.
-dkgDigestType :: Lens' DNSKeysGet (Maybe Text)
-dkgDigestType
-  = lens _dkgDigestType
-      (\ s a -> s{_dkgDigestType = a})
-
--- | The identifier of the requested DnsKey.
-dkgDNSKeyId :: Lens' DNSKeysGet Text
-dkgDNSKeyId
-  = lens _dkgDNSKeyId (\ s a -> s{_dkgDNSKeyId = a})
-
--- | Identifies the managed zone addressed by this request. Can be the
--- managed zone name or id.
-dkgManagedZone :: Lens' DNSKeysGet Text
-dkgManagedZone
-  = lens _dkgManagedZone
-      (\ s a -> s{_dkgManagedZone = a})
-
--- | For mutating operation requests only. An optional identifier specified
--- by the client. Must be unique for operation resources in the Operations
--- collection.
-dkgClientOperationId :: Lens' DNSKeysGet (Maybe Text)
-dkgClientOperationId
-  = lens _dkgClientOperationId
-      (\ s a -> s{_dkgClientOperationId = a})
-
-instance GoogleRequest DNSKeysGet where
-        type Rs DNSKeysGet = DNSKey
-        type Scopes DNSKeysGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/cloud-platform.read-only",
-               "https://www.googleapis.com/auth/ndev.clouddns.readonly",
-               "https://www.googleapis.com/auth/ndev.clouddns.readwrite"]
-        requestClient DNSKeysGet'{..}
-          = go _dkgProject _dkgManagedZone _dkgDNSKeyId
-              _dkgDigestType
-              _dkgClientOperationId
-              (Just AltJSON)
-              dNSService
-          where go
-                  = buildClient (Proxy :: Proxy DNSKeysGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/DNS/DNSKeys/List.hs b/gen/Network/Google/Resource/DNS/DNSKeys/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/DNS/DNSKeys/List.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.DNS.DNSKeys.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)
---
--- Enumerate DnsKeys to a ResourceRecordSet collection.
---
--- /See:/ <https://developers.google.com/cloud-dns Google Cloud DNS API Reference> for @dns.dnsKeys.list@.
-module Network.Google.Resource.DNS.DNSKeys.List
-    (
-    -- * REST Resource
-      DNSKeysListResource
-
-    -- * Creating a Request
-    , dnsKeysList
-    , DNSKeysList
-
-    -- * Request Lenses
-    , dklProject
-    , dklDigestType
-    , dklPageToken
-    , dklManagedZone
-    , dklMaxResults
-    ) where
-
-import           Network.Google.DNS.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @dns.dnsKeys.list@ method which the
--- 'DNSKeysList' request conforms to.
-type DNSKeysListResource =
-     "dns" :>
-       "v2beta1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "managedZones" :>
-               Capture "managedZone" Text :>
-                 "dnsKeys" :>
-                   QueryParam "digestType" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Int32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] DNSKeysListResponse
-
--- | Enumerate DnsKeys to a ResourceRecordSet collection.
---
--- /See:/ 'dnsKeysList' smart constructor.
-data DNSKeysList =
-  DNSKeysList'
-    { _dklProject     :: !Text
-    , _dklDigestType  :: !(Maybe Text)
-    , _dklPageToken   :: !(Maybe Text)
-    , _dklManagedZone :: !Text
-    , _dklMaxResults  :: !(Maybe (Textual Int32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DNSKeysList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dklProject'
---
--- * 'dklDigestType'
---
--- * 'dklPageToken'
---
--- * 'dklManagedZone'
---
--- * 'dklMaxResults'
-dnsKeysList
-    :: Text -- ^ 'dklProject'
-    -> Text -- ^ 'dklManagedZone'
-    -> DNSKeysList
-dnsKeysList pDklProject_ pDklManagedZone_ =
-  DNSKeysList'
-    { _dklProject = pDklProject_
-    , _dklDigestType = Nothing
-    , _dklPageToken = Nothing
-    , _dklManagedZone = pDklManagedZone_
-    , _dklMaxResults = Nothing
-    }
-
-
--- | Identifies the project addressed by this request.
-dklProject :: Lens' DNSKeysList Text
-dklProject
-  = lens _dklProject (\ s a -> s{_dklProject = a})
-
--- | An optional comma-separated list of digest types to compute and display
--- for key signing keys. If omitted, the recommended digest type will be
--- computed and displayed.
-dklDigestType :: Lens' DNSKeysList (Maybe Text)
-dklDigestType
-  = lens _dklDigestType
-      (\ s a -> s{_dklDigestType = a})
-
--- | Optional. A tag returned by a previous list request that was truncated.
--- Use this parameter to continue a previous list request.
-dklPageToken :: Lens' DNSKeysList (Maybe Text)
-dklPageToken
-  = lens _dklPageToken (\ s a -> s{_dklPageToken = a})
-
--- | Identifies the managed zone addressed by this request. Can be the
--- managed zone name or id.
-dklManagedZone :: Lens' DNSKeysList Text
-dklManagedZone
-  = lens _dklManagedZone
-      (\ s a -> s{_dklManagedZone = a})
-
--- | Optional. Maximum number of results to be returned. If unspecified, the
--- server will decide how many results to return.
-dklMaxResults :: Lens' DNSKeysList (Maybe Int32)
-dklMaxResults
-  = lens _dklMaxResults
-      (\ s a -> s{_dklMaxResults = a})
-      . mapping _Coerce
-
-instance GoogleRequest DNSKeysList where
-        type Rs DNSKeysList = DNSKeysListResponse
-        type Scopes DNSKeysList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/cloud-platform.read-only",
-               "https://www.googleapis.com/auth/ndev.clouddns.readonly",
-               "https://www.googleapis.com/auth/ndev.clouddns.readwrite"]
-        requestClient DNSKeysList'{..}
-          = go _dklProject _dklManagedZone _dklDigestType
-              _dklPageToken
-              _dklMaxResults
-              (Just AltJSON)
-              dNSService
-          where go
-                  = buildClient (Proxy :: Proxy DNSKeysListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/DNS/ManagedZoneOperations/Get.hs b/gen/Network/Google/Resource/DNS/ManagedZoneOperations/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/DNS/ManagedZoneOperations/Get.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.DNS.ManagedZoneOperations.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)
---
--- Fetch the representation of an existing Operation.
---
--- /See:/ <https://developers.google.com/cloud-dns Google Cloud DNS API Reference> for @dns.managedZoneOperations.get@.
-module Network.Google.Resource.DNS.ManagedZoneOperations.Get
-    (
-    -- * REST Resource
-      ManagedZoneOperationsGetResource
-
-    -- * Creating a Request
-    , managedZoneOperationsGet
-    , ManagedZoneOperationsGet
-
-    -- * Request Lenses
-    , mzogProject
-    , mzogOperation
-    , mzogManagedZone
-    , mzogClientOperationId
-    ) where
-
-import           Network.Google.DNS.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @dns.managedZoneOperations.get@ method which the
--- 'ManagedZoneOperationsGet' request conforms to.
-type ManagedZoneOperationsGetResource =
-     "dns" :>
-       "v2beta1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "managedZones" :>
-               Capture "managedZone" Text :>
-                 "operations" :>
-                   Capture "operation" Text :>
-                     QueryParam "clientOperationId" Text :>
-                       QueryParam "alt" AltJSON :> Get '[JSON] Operation
-
--- | Fetch the representation of an existing Operation.
---
--- /See:/ 'managedZoneOperationsGet' smart constructor.
-data ManagedZoneOperationsGet =
-  ManagedZoneOperationsGet'
-    { _mzogProject           :: !Text
-    , _mzogOperation         :: !Text
-    , _mzogManagedZone       :: !Text
-    , _mzogClientOperationId :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ManagedZoneOperationsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mzogProject'
---
--- * 'mzogOperation'
---
--- * 'mzogManagedZone'
---
--- * 'mzogClientOperationId'
-managedZoneOperationsGet
-    :: Text -- ^ 'mzogProject'
-    -> Text -- ^ 'mzogOperation'
-    -> Text -- ^ 'mzogManagedZone'
-    -> ManagedZoneOperationsGet
-managedZoneOperationsGet pMzogProject_ pMzogOperation_ pMzogManagedZone_ =
-  ManagedZoneOperationsGet'
-    { _mzogProject = pMzogProject_
-    , _mzogOperation = pMzogOperation_
-    , _mzogManagedZone = pMzogManagedZone_
-    , _mzogClientOperationId = Nothing
-    }
-
-
--- | Identifies the project addressed by this request.
-mzogProject :: Lens' ManagedZoneOperationsGet Text
-mzogProject
-  = lens _mzogProject (\ s a -> s{_mzogProject = a})
-
--- | Identifies the operation addressed by this request.
-mzogOperation :: Lens' ManagedZoneOperationsGet Text
-mzogOperation
-  = lens _mzogOperation
-      (\ s a -> s{_mzogOperation = a})
-
--- | Identifies the managed zone addressed by this request.
-mzogManagedZone :: Lens' ManagedZoneOperationsGet Text
-mzogManagedZone
-  = lens _mzogManagedZone
-      (\ s a -> s{_mzogManagedZone = a})
-
--- | For mutating operation requests only. An optional identifier specified
--- by the client. Must be unique for operation resources in the Operations
--- collection.
-mzogClientOperationId :: Lens' ManagedZoneOperationsGet (Maybe Text)
-mzogClientOperationId
-  = lens _mzogClientOperationId
-      (\ s a -> s{_mzogClientOperationId = a})
-
-instance GoogleRequest ManagedZoneOperationsGet where
-        type Rs ManagedZoneOperationsGet = Operation
-        type Scopes ManagedZoneOperationsGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/cloud-platform.read-only",
-               "https://www.googleapis.com/auth/ndev.clouddns.readonly",
-               "https://www.googleapis.com/auth/ndev.clouddns.readwrite"]
-        requestClient ManagedZoneOperationsGet'{..}
-          = go _mzogProject _mzogManagedZone _mzogOperation
-              _mzogClientOperationId
-              (Just AltJSON)
-              dNSService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ManagedZoneOperationsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/DNS/ManagedZoneOperations/List.hs b/gen/Network/Google/Resource/DNS/ManagedZoneOperations/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/DNS/ManagedZoneOperations/List.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.DNS.ManagedZoneOperations.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)
---
--- Enumerate Operations for the given ManagedZone.
---
--- /See:/ <https://developers.google.com/cloud-dns Google Cloud DNS API Reference> for @dns.managedZoneOperations.list@.
-module Network.Google.Resource.DNS.ManagedZoneOperations.List
-    (
-    -- * REST Resource
-      ManagedZoneOperationsListResource
-
-    -- * Creating a Request
-    , managedZoneOperationsList
-    , ManagedZoneOperationsList
-
-    -- * Request Lenses
-    , mzolProject
-    , mzolPageToken
-    , mzolManagedZone
-    , mzolMaxResults
-    , mzolSortBy
-    ) where
-
-import           Network.Google.DNS.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @dns.managedZoneOperations.list@ method which the
--- 'ManagedZoneOperationsList' request conforms to.
-type ManagedZoneOperationsListResource =
-     "dns" :>
-       "v2beta1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "managedZones" :>
-               Capture "managedZone" Text :>
-                 "operations" :>
-                   QueryParam "pageToken" Text :>
-                     QueryParam "maxResults" (Textual Int32) :>
-                       QueryParam "sortBy" ManagedZoneOperationsListSortBy
-                         :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] ManagedZoneOperationsListResponse
-
--- | Enumerate Operations for the given ManagedZone.
---
--- /See:/ 'managedZoneOperationsList' smart constructor.
-data ManagedZoneOperationsList =
-  ManagedZoneOperationsList'
-    { _mzolProject     :: !Text
-    , _mzolPageToken   :: !(Maybe Text)
-    , _mzolManagedZone :: !Text
-    , _mzolMaxResults  :: !(Maybe (Textual Int32))
-    , _mzolSortBy      :: !ManagedZoneOperationsListSortBy
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ManagedZoneOperationsList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mzolProject'
---
--- * 'mzolPageToken'
---
--- * 'mzolManagedZone'
---
--- * 'mzolMaxResults'
---
--- * 'mzolSortBy'
-managedZoneOperationsList
-    :: Text -- ^ 'mzolProject'
-    -> Text -- ^ 'mzolManagedZone'
-    -> ManagedZoneOperationsList
-managedZoneOperationsList pMzolProject_ pMzolManagedZone_ =
-  ManagedZoneOperationsList'
-    { _mzolProject = pMzolProject_
-    , _mzolPageToken = Nothing
-    , _mzolManagedZone = pMzolManagedZone_
-    , _mzolMaxResults = Nothing
-    , _mzolSortBy = StartTime
-    }
-
-
--- | Identifies the project addressed by this request.
-mzolProject :: Lens' ManagedZoneOperationsList Text
-mzolProject
-  = lens _mzolProject (\ s a -> s{_mzolProject = a})
-
--- | Optional. A tag returned by a previous list request that was truncated.
--- Use this parameter to continue a previous list request.
-mzolPageToken :: Lens' ManagedZoneOperationsList (Maybe Text)
-mzolPageToken
-  = lens _mzolPageToken
-      (\ s a -> s{_mzolPageToken = a})
-
--- | Identifies the managed zone addressed by this request.
-mzolManagedZone :: Lens' ManagedZoneOperationsList Text
-mzolManagedZone
-  = lens _mzolManagedZone
-      (\ s a -> s{_mzolManagedZone = a})
-
--- | Optional. Maximum number of results to be returned. If unspecified, the
--- server will decide how many results to return.
-mzolMaxResults :: Lens' ManagedZoneOperationsList (Maybe Int32)
-mzolMaxResults
-  = lens _mzolMaxResults
-      (\ s a -> s{_mzolMaxResults = a})
-      . mapping _Coerce
-
--- | Sorting criterion. The only supported values are START_TIME and ID.
-mzolSortBy :: Lens' ManagedZoneOperationsList ManagedZoneOperationsListSortBy
-mzolSortBy
-  = lens _mzolSortBy (\ s a -> s{_mzolSortBy = a})
-
-instance GoogleRequest ManagedZoneOperationsList
-         where
-        type Rs ManagedZoneOperationsList =
-             ManagedZoneOperationsListResponse
-        type Scopes ManagedZoneOperationsList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/cloud-platform.read-only",
-               "https://www.googleapis.com/auth/ndev.clouddns.readonly",
-               "https://www.googleapis.com/auth/ndev.clouddns.readwrite"]
-        requestClient ManagedZoneOperationsList'{..}
-          = go _mzolProject _mzolManagedZone _mzolPageToken
-              _mzolMaxResults
-              (Just _mzolSortBy)
-              (Just AltJSON)
-              dNSService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ManagedZoneOperationsListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/DNS/ManagedZones/Create.hs b/gen/Network/Google/Resource/DNS/ManagedZones/Create.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/DNS/ManagedZones/Create.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.DNS.ManagedZones.Create
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Create a new ManagedZone.
---
--- /See:/ <https://developers.google.com/cloud-dns Google Cloud DNS API Reference> for @dns.managedZones.create@.
-module Network.Google.Resource.DNS.ManagedZones.Create
-    (
-    -- * REST Resource
-      ManagedZonesCreateResource
-
-    -- * Creating a Request
-    , managedZonesCreate
-    , ManagedZonesCreate
-
-    -- * Request Lenses
-    , mzcProject
-    , mzcPayload
-    , mzcClientOperationId
-    ) where
-
-import           Network.Google.DNS.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @dns.managedZones.create@ method which the
--- 'ManagedZonesCreate' request conforms to.
-type ManagedZonesCreateResource =
-     "dns" :>
-       "v2beta1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "managedZones" :>
-               QueryParam "clientOperationId" Text :>
-                 QueryParam "alt" AltJSON :>
-                   ReqBody '[JSON] ManagedZone :>
-                     Post '[JSON] ManagedZone
-
--- | Create a new ManagedZone.
---
--- /See:/ 'managedZonesCreate' smart constructor.
-data ManagedZonesCreate =
-  ManagedZonesCreate'
-    { _mzcProject           :: !Text
-    , _mzcPayload           :: !ManagedZone
-    , _mzcClientOperationId :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ManagedZonesCreate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mzcProject'
---
--- * 'mzcPayload'
---
--- * 'mzcClientOperationId'
-managedZonesCreate
-    :: Text -- ^ 'mzcProject'
-    -> ManagedZone -- ^ 'mzcPayload'
-    -> ManagedZonesCreate
-managedZonesCreate pMzcProject_ pMzcPayload_ =
-  ManagedZonesCreate'
-    { _mzcProject = pMzcProject_
-    , _mzcPayload = pMzcPayload_
-    , _mzcClientOperationId = Nothing
-    }
-
-
--- | Identifies the project addressed by this request.
-mzcProject :: Lens' ManagedZonesCreate Text
-mzcProject
-  = lens _mzcProject (\ s a -> s{_mzcProject = a})
-
--- | Multipart request metadata.
-mzcPayload :: Lens' ManagedZonesCreate ManagedZone
-mzcPayload
-  = lens _mzcPayload (\ s a -> s{_mzcPayload = a})
-
--- | For mutating operation requests only. An optional identifier specified
--- by the client. Must be unique for operation resources in the Operations
--- collection.
-mzcClientOperationId :: Lens' ManagedZonesCreate (Maybe Text)
-mzcClientOperationId
-  = lens _mzcClientOperationId
-      (\ s a -> s{_mzcClientOperationId = a})
-
-instance GoogleRequest ManagedZonesCreate where
-        type Rs ManagedZonesCreate = ManagedZone
-        type Scopes ManagedZonesCreate =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/ndev.clouddns.readwrite"]
-        requestClient ManagedZonesCreate'{..}
-          = go _mzcProject _mzcClientOperationId (Just AltJSON)
-              _mzcPayload
-              dNSService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ManagedZonesCreateResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/DNS/ManagedZones/Delete.hs b/gen/Network/Google/Resource/DNS/ManagedZones/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/DNS/ManagedZones/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.DNS.ManagedZones.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)
---
--- Delete a previously created ManagedZone.
---
--- /See:/ <https://developers.google.com/cloud-dns Google Cloud DNS API Reference> for @dns.managedZones.delete@.
-module Network.Google.Resource.DNS.ManagedZones.Delete
-    (
-    -- * REST Resource
-      ManagedZonesDeleteResource
-
-    -- * Creating a Request
-    , managedZonesDelete
-    , ManagedZonesDelete
-
-    -- * Request Lenses
-    , mzdProject
-    , mzdManagedZone
-    , mzdClientOperationId
-    ) where
-
-import           Network.Google.DNS.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @dns.managedZones.delete@ method which the
--- 'ManagedZonesDelete' request conforms to.
-type ManagedZonesDeleteResource =
-     "dns" :>
-       "v2beta1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "managedZones" :>
-               Capture "managedZone" Text :>
-                 QueryParam "clientOperationId" Text :>
-                   QueryParam "alt" AltJSON :> Delete '[JSON] ()
-
--- | Delete a previously created ManagedZone.
---
--- /See:/ 'managedZonesDelete' smart constructor.
-data ManagedZonesDelete =
-  ManagedZonesDelete'
-    { _mzdProject           :: !Text
-    , _mzdManagedZone       :: !Text
-    , _mzdClientOperationId :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ManagedZonesDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mzdProject'
---
--- * 'mzdManagedZone'
---
--- * 'mzdClientOperationId'
-managedZonesDelete
-    :: Text -- ^ 'mzdProject'
-    -> Text -- ^ 'mzdManagedZone'
-    -> ManagedZonesDelete
-managedZonesDelete pMzdProject_ pMzdManagedZone_ =
-  ManagedZonesDelete'
-    { _mzdProject = pMzdProject_
-    , _mzdManagedZone = pMzdManagedZone_
-    , _mzdClientOperationId = Nothing
-    }
-
-
--- | Identifies the project addressed by this request.
-mzdProject :: Lens' ManagedZonesDelete Text
-mzdProject
-  = lens _mzdProject (\ s a -> s{_mzdProject = a})
-
--- | Identifies the managed zone addressed by this request. Can be the
--- managed zone name or id.
-mzdManagedZone :: Lens' ManagedZonesDelete Text
-mzdManagedZone
-  = lens _mzdManagedZone
-      (\ s a -> s{_mzdManagedZone = a})
-
--- | For mutating operation requests only. An optional identifier specified
--- by the client. Must be unique for operation resources in the Operations
--- collection.
-mzdClientOperationId :: Lens' ManagedZonesDelete (Maybe Text)
-mzdClientOperationId
-  = lens _mzdClientOperationId
-      (\ s a -> s{_mzdClientOperationId = a})
-
-instance GoogleRequest ManagedZonesDelete where
-        type Rs ManagedZonesDelete = ()
-        type Scopes ManagedZonesDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/ndev.clouddns.readwrite"]
-        requestClient ManagedZonesDelete'{..}
-          = go _mzdProject _mzdManagedZone
-              _mzdClientOperationId
-              (Just AltJSON)
-              dNSService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ManagedZonesDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/DNS/ManagedZones/Get.hs b/gen/Network/Google/Resource/DNS/ManagedZones/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/DNS/ManagedZones/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.DNS.ManagedZones.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)
---
--- Fetch the representation of an existing ManagedZone.
---
--- /See:/ <https://developers.google.com/cloud-dns Google Cloud DNS API Reference> for @dns.managedZones.get@.
-module Network.Google.Resource.DNS.ManagedZones.Get
-    (
-    -- * REST Resource
-      ManagedZonesGetResource
-
-    -- * Creating a Request
-    , managedZonesGet
-    , ManagedZonesGet
-
-    -- * Request Lenses
-    , mzgProject
-    , mzgManagedZone
-    , mzgClientOperationId
-    ) where
-
-import           Network.Google.DNS.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @dns.managedZones.get@ method which the
--- 'ManagedZonesGet' request conforms to.
-type ManagedZonesGetResource =
-     "dns" :>
-       "v2beta1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "managedZones" :>
-               Capture "managedZone" Text :>
-                 QueryParam "clientOperationId" Text :>
-                   QueryParam "alt" AltJSON :> Get '[JSON] ManagedZone
-
--- | Fetch the representation of an existing ManagedZone.
---
--- /See:/ 'managedZonesGet' smart constructor.
-data ManagedZonesGet =
-  ManagedZonesGet'
-    { _mzgProject           :: !Text
-    , _mzgManagedZone       :: !Text
-    , _mzgClientOperationId :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ManagedZonesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mzgProject'
---
--- * 'mzgManagedZone'
---
--- * 'mzgClientOperationId'
-managedZonesGet
-    :: Text -- ^ 'mzgProject'
-    -> Text -- ^ 'mzgManagedZone'
-    -> ManagedZonesGet
-managedZonesGet pMzgProject_ pMzgManagedZone_ =
-  ManagedZonesGet'
-    { _mzgProject = pMzgProject_
-    , _mzgManagedZone = pMzgManagedZone_
-    , _mzgClientOperationId = Nothing
-    }
-
-
--- | Identifies the project addressed by this request.
-mzgProject :: Lens' ManagedZonesGet Text
-mzgProject
-  = lens _mzgProject (\ s a -> s{_mzgProject = a})
-
--- | Identifies the managed zone addressed by this request. Can be the
--- managed zone name or id.
-mzgManagedZone :: Lens' ManagedZonesGet Text
-mzgManagedZone
-  = lens _mzgManagedZone
-      (\ s a -> s{_mzgManagedZone = a})
-
--- | For mutating operation requests only. An optional identifier specified
--- by the client. Must be unique for operation resources in the Operations
--- collection.
-mzgClientOperationId :: Lens' ManagedZonesGet (Maybe Text)
-mzgClientOperationId
-  = lens _mzgClientOperationId
-      (\ s a -> s{_mzgClientOperationId = a})
-
-instance GoogleRequest ManagedZonesGet where
-        type Rs ManagedZonesGet = ManagedZone
-        type Scopes ManagedZonesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/cloud-platform.read-only",
-               "https://www.googleapis.com/auth/ndev.clouddns.readonly",
-               "https://www.googleapis.com/auth/ndev.clouddns.readwrite"]
-        requestClient ManagedZonesGet'{..}
-          = go _mzgProject _mzgManagedZone
-              _mzgClientOperationId
-              (Just AltJSON)
-              dNSService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ManagedZonesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/DNS/ManagedZones/List.hs b/gen/Network/Google/Resource/DNS/ManagedZones/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/DNS/ManagedZones/List.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.DNS.ManagedZones.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)
---
--- Enumerate ManagedZones that have been created but not yet deleted.
---
--- /See:/ <https://developers.google.com/cloud-dns Google Cloud DNS API Reference> for @dns.managedZones.list@.
-module Network.Google.Resource.DNS.ManagedZones.List
-    (
-    -- * REST Resource
-      ManagedZonesListResource
-
-    -- * Creating a Request
-    , managedZonesList
-    , ManagedZonesList
-
-    -- * Request Lenses
-    , mzlProject
-    , mzlPageToken
-    , mzlDNSName
-    , mzlMaxResults
-    ) where
-
-import           Network.Google.DNS.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @dns.managedZones.list@ method which the
--- 'ManagedZonesList' request conforms to.
-type ManagedZonesListResource =
-     "dns" :>
-       "v2beta1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "managedZones" :>
-               QueryParam "pageToken" Text :>
-                 QueryParam "dnsName" Text :>
-                   QueryParam "maxResults" (Textual Int32) :>
-                     QueryParam "alt" AltJSON :>
-                       Get '[JSON] ManagedZonesListResponse
-
--- | Enumerate ManagedZones that have been created but not yet deleted.
---
--- /See:/ 'managedZonesList' smart constructor.
-data ManagedZonesList =
-  ManagedZonesList'
-    { _mzlProject    :: !Text
-    , _mzlPageToken  :: !(Maybe Text)
-    , _mzlDNSName    :: !(Maybe Text)
-    , _mzlMaxResults :: !(Maybe (Textual Int32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ManagedZonesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mzlProject'
---
--- * 'mzlPageToken'
---
--- * 'mzlDNSName'
---
--- * 'mzlMaxResults'
-managedZonesList
-    :: Text -- ^ 'mzlProject'
-    -> ManagedZonesList
-managedZonesList pMzlProject_ =
-  ManagedZonesList'
-    { _mzlProject = pMzlProject_
-    , _mzlPageToken = Nothing
-    , _mzlDNSName = Nothing
-    , _mzlMaxResults = Nothing
-    }
-
-
--- | Identifies the project addressed by this request.
-mzlProject :: Lens' ManagedZonesList Text
-mzlProject
-  = lens _mzlProject (\ s a -> s{_mzlProject = a})
-
--- | Optional. A tag returned by a previous list request that was truncated.
--- Use this parameter to continue a previous list request.
-mzlPageToken :: Lens' ManagedZonesList (Maybe Text)
-mzlPageToken
-  = lens _mzlPageToken (\ s a -> s{_mzlPageToken = a})
-
--- | Restricts the list to return only zones with this domain name.
-mzlDNSName :: Lens' ManagedZonesList (Maybe Text)
-mzlDNSName
-  = lens _mzlDNSName (\ s a -> s{_mzlDNSName = a})
-
--- | Optional. Maximum number of results to be returned. If unspecified, the
--- server will decide how many results to return.
-mzlMaxResults :: Lens' ManagedZonesList (Maybe Int32)
-mzlMaxResults
-  = lens _mzlMaxResults
-      (\ s a -> s{_mzlMaxResults = a})
-      . mapping _Coerce
-
-instance GoogleRequest ManagedZonesList where
-        type Rs ManagedZonesList = ManagedZonesListResponse
-        type Scopes ManagedZonesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/cloud-platform.read-only",
-               "https://www.googleapis.com/auth/ndev.clouddns.readonly",
-               "https://www.googleapis.com/auth/ndev.clouddns.readwrite"]
-        requestClient ManagedZonesList'{..}
-          = go _mzlProject _mzlPageToken _mzlDNSName
-              _mzlMaxResults
-              (Just AltJSON)
-              dNSService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ManagedZonesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/DNS/ManagedZones/Patch.hs b/gen/Network/Google/Resource/DNS/ManagedZones/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/DNS/ManagedZones/Patch.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.DNS.ManagedZones.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)
---
--- Apply a partial update to an existing ManagedZone.
---
--- /See:/ <https://developers.google.com/cloud-dns Google Cloud DNS API Reference> for @dns.managedZones.patch@.
-module Network.Google.Resource.DNS.ManagedZones.Patch
-    (
-    -- * REST Resource
-      ManagedZonesPatchResource
-
-    -- * Creating a Request
-    , managedZonesPatch
-    , ManagedZonesPatch
-
-    -- * Request Lenses
-    , mzpProject
-    , mzpPayload
-    , mzpManagedZone
-    , mzpClientOperationId
-    ) where
-
-import           Network.Google.DNS.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @dns.managedZones.patch@ method which the
--- 'ManagedZonesPatch' request conforms to.
-type ManagedZonesPatchResource =
-     "dns" :>
-       "v2beta1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "managedZones" :>
-               Capture "managedZone" Text :>
-                 QueryParam "clientOperationId" Text :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] ManagedZone :>
-                       Patch '[JSON] Operation
-
--- | Apply a partial update to an existing ManagedZone.
---
--- /See:/ 'managedZonesPatch' smart constructor.
-data ManagedZonesPatch =
-  ManagedZonesPatch'
-    { _mzpProject           :: !Text
-    , _mzpPayload           :: !ManagedZone
-    , _mzpManagedZone       :: !Text
-    , _mzpClientOperationId :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ManagedZonesPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mzpProject'
---
--- * 'mzpPayload'
---
--- * 'mzpManagedZone'
---
--- * 'mzpClientOperationId'
-managedZonesPatch
-    :: Text -- ^ 'mzpProject'
-    -> ManagedZone -- ^ 'mzpPayload'
-    -> Text -- ^ 'mzpManagedZone'
-    -> ManagedZonesPatch
-managedZonesPatch pMzpProject_ pMzpPayload_ pMzpManagedZone_ =
-  ManagedZonesPatch'
-    { _mzpProject = pMzpProject_
-    , _mzpPayload = pMzpPayload_
-    , _mzpManagedZone = pMzpManagedZone_
-    , _mzpClientOperationId = Nothing
-    }
-
-
--- | Identifies the project addressed by this request.
-mzpProject :: Lens' ManagedZonesPatch Text
-mzpProject
-  = lens _mzpProject (\ s a -> s{_mzpProject = a})
-
--- | Multipart request metadata.
-mzpPayload :: Lens' ManagedZonesPatch ManagedZone
-mzpPayload
-  = lens _mzpPayload (\ s a -> s{_mzpPayload = a})
-
--- | Identifies the managed zone addressed by this request. Can be the
--- managed zone name or id.
-mzpManagedZone :: Lens' ManagedZonesPatch Text
-mzpManagedZone
-  = lens _mzpManagedZone
-      (\ s a -> s{_mzpManagedZone = a})
-
--- | For mutating operation requests only. An optional identifier specified
--- by the client. Must be unique for operation resources in the Operations
--- collection.
-mzpClientOperationId :: Lens' ManagedZonesPatch (Maybe Text)
-mzpClientOperationId
-  = lens _mzpClientOperationId
-      (\ s a -> s{_mzpClientOperationId = a})
-
-instance GoogleRequest ManagedZonesPatch where
-        type Rs ManagedZonesPatch = Operation
-        type Scopes ManagedZonesPatch =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/ndev.clouddns.readwrite"]
-        requestClient ManagedZonesPatch'{..}
-          = go _mzpProject _mzpManagedZone
-              _mzpClientOperationId
-              (Just AltJSON)
-              _mzpPayload
-              dNSService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ManagedZonesPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/DNS/ManagedZones/Update.hs b/gen/Network/Google/Resource/DNS/ManagedZones/Update.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/DNS/ManagedZones/Update.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.DNS.ManagedZones.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)
---
--- Update an existing ManagedZone.
---
--- /See:/ <https://developers.google.com/cloud-dns Google Cloud DNS API Reference> for @dns.managedZones.update@.
-module Network.Google.Resource.DNS.ManagedZones.Update
-    (
-    -- * REST Resource
-      ManagedZonesUpdateResource
-
-    -- * Creating a Request
-    , managedZonesUpdate
-    , ManagedZonesUpdate
-
-    -- * Request Lenses
-    , mzuProject
-    , mzuPayload
-    , mzuManagedZone
-    , mzuClientOperationId
-    ) where
-
-import           Network.Google.DNS.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @dns.managedZones.update@ method which the
--- 'ManagedZonesUpdate' request conforms to.
-type ManagedZonesUpdateResource =
-     "dns" :>
-       "v2beta1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "managedZones" :>
-               Capture "managedZone" Text :>
-                 QueryParam "clientOperationId" Text :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] ManagedZone :> Put '[JSON] Operation
-
--- | Update an existing ManagedZone.
---
--- /See:/ 'managedZonesUpdate' smart constructor.
-data ManagedZonesUpdate =
-  ManagedZonesUpdate'
-    { _mzuProject           :: !Text
-    , _mzuPayload           :: !ManagedZone
-    , _mzuManagedZone       :: !Text
-    , _mzuClientOperationId :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ManagedZonesUpdate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mzuProject'
---
--- * 'mzuPayload'
---
--- * 'mzuManagedZone'
---
--- * 'mzuClientOperationId'
-managedZonesUpdate
-    :: Text -- ^ 'mzuProject'
-    -> ManagedZone -- ^ 'mzuPayload'
-    -> Text -- ^ 'mzuManagedZone'
-    -> ManagedZonesUpdate
-managedZonesUpdate pMzuProject_ pMzuPayload_ pMzuManagedZone_ =
-  ManagedZonesUpdate'
-    { _mzuProject = pMzuProject_
-    , _mzuPayload = pMzuPayload_
-    , _mzuManagedZone = pMzuManagedZone_
-    , _mzuClientOperationId = Nothing
-    }
-
-
--- | Identifies the project addressed by this request.
-mzuProject :: Lens' ManagedZonesUpdate Text
-mzuProject
-  = lens _mzuProject (\ s a -> s{_mzuProject = a})
-
--- | Multipart request metadata.
-mzuPayload :: Lens' ManagedZonesUpdate ManagedZone
-mzuPayload
-  = lens _mzuPayload (\ s a -> s{_mzuPayload = a})
-
--- | Identifies the managed zone addressed by this request. Can be the
--- managed zone name or id.
-mzuManagedZone :: Lens' ManagedZonesUpdate Text
-mzuManagedZone
-  = lens _mzuManagedZone
-      (\ s a -> s{_mzuManagedZone = a})
-
--- | For mutating operation requests only. An optional identifier specified
--- by the client. Must be unique for operation resources in the Operations
--- collection.
-mzuClientOperationId :: Lens' ManagedZonesUpdate (Maybe Text)
-mzuClientOperationId
-  = lens _mzuClientOperationId
-      (\ s a -> s{_mzuClientOperationId = a})
-
-instance GoogleRequest ManagedZonesUpdate where
-        type Rs ManagedZonesUpdate = Operation
-        type Scopes ManagedZonesUpdate =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/ndev.clouddns.readwrite"]
-        requestClient ManagedZonesUpdate'{..}
-          = go _mzuProject _mzuManagedZone
-              _mzuClientOperationId
-              (Just AltJSON)
-              _mzuPayload
-              dNSService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ManagedZonesUpdateResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/DNS/Projects/Get.hs b/gen/Network/Google/Resource/DNS/Projects/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/DNS/Projects/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.DNS.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)
---
--- Fetch the representation of an existing Project.
---
--- /See:/ <https://developers.google.com/cloud-dns Google Cloud DNS API Reference> for @dns.projects.get@.
-module Network.Google.Resource.DNS.Projects.Get
-    (
-    -- * REST Resource
-      ProjectsGetResource
-
-    -- * Creating a Request
-    , projectsGet
-    , ProjectsGet
-
-    -- * Request Lenses
-    , pgProject
-    , pgClientOperationId
-    ) where
-
-import           Network.Google.DNS.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @dns.projects.get@ method which the
--- 'ProjectsGet' request conforms to.
-type ProjectsGetResource =
-     "dns" :>
-       "v2beta1" :>
-         "projects" :>
-           Capture "project" Text :>
-             QueryParam "clientOperationId" Text :>
-               QueryParam "alt" AltJSON :> Get '[JSON] Project
-
--- | Fetch the representation of an existing Project.
---
--- /See:/ 'projectsGet' smart constructor.
-data ProjectsGet =
-  ProjectsGet'
-    { _pgProject           :: !Text
-    , _pgClientOperationId :: !(Maybe 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'
---
--- * 'pgClientOperationId'
-projectsGet
-    :: Text -- ^ 'pgProject'
-    -> ProjectsGet
-projectsGet pPgProject_ =
-  ProjectsGet' {_pgProject = pPgProject_, _pgClientOperationId = Nothing}
-
-
--- | Identifies the project addressed by this request.
-pgProject :: Lens' ProjectsGet Text
-pgProject
-  = lens _pgProject (\ s a -> s{_pgProject = a})
-
--- | For mutating operation requests only. An optional identifier specified
--- by the client. Must be unique for operation resources in the Operations
--- collection.
-pgClientOperationId :: Lens' ProjectsGet (Maybe Text)
-pgClientOperationId
-  = lens _pgClientOperationId
-      (\ s a -> s{_pgClientOperationId = a})
-
-instance GoogleRequest ProjectsGet where
-        type Rs ProjectsGet = Project
-        type Scopes ProjectsGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/cloud-platform.read-only",
-               "https://www.googleapis.com/auth/ndev.clouddns.readonly",
-               "https://www.googleapis.com/auth/ndev.clouddns.readwrite"]
-        requestClient ProjectsGet'{..}
-          = go _pgProject _pgClientOperationId (Just AltJSON)
-              dNSService
-          where go
-                  = buildClient (Proxy :: Proxy ProjectsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/DNS/ResourceRecordSets/List.hs b/gen/Network/Google/Resource/DNS/ResourceRecordSets/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/DNS/ResourceRecordSets/List.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.DNS.ResourceRecordSets.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)
---
--- Enumerate ResourceRecordSets that have been created but not yet deleted.
---
--- /See:/ <https://developers.google.com/cloud-dns Google Cloud DNS API Reference> for @dns.resourceRecordSets.list@.
-module Network.Google.Resource.DNS.ResourceRecordSets.List
-    (
-    -- * REST Resource
-      ResourceRecordSetsListResource
-
-    -- * Creating a Request
-    , resourceRecordSetsList
-    , ResourceRecordSetsList
-
-    -- * Request Lenses
-    , rrslProject
-    , rrslName
-    , rrslPageToken
-    , rrslType
-    , rrslManagedZone
-    , rrslMaxResults
-    ) where
-
-import           Network.Google.DNS.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @dns.resourceRecordSets.list@ method which the
--- 'ResourceRecordSetsList' request conforms to.
-type ResourceRecordSetsListResource =
-     "dns" :>
-       "v2beta1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "managedZones" :>
-               Capture "managedZone" Text :>
-                 "rrsets" :>
-                   QueryParam "name" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "type" Text :>
-                         QueryParam "maxResults" (Textual Int32) :>
-                           QueryParam "alt" AltJSON :>
-                             Get '[JSON] ResourceRecordSetsListResponse
-
--- | Enumerate ResourceRecordSets that have been created but not yet deleted.
---
--- /See:/ 'resourceRecordSetsList' smart constructor.
-data ResourceRecordSetsList =
-  ResourceRecordSetsList'
-    { _rrslProject     :: !Text
-    , _rrslName        :: !(Maybe Text)
-    , _rrslPageToken   :: !(Maybe Text)
-    , _rrslType        :: !(Maybe Text)
-    , _rrslManagedZone :: !Text
-    , _rrslMaxResults  :: !(Maybe (Textual Int32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ResourceRecordSetsList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rrslProject'
---
--- * 'rrslName'
---
--- * 'rrslPageToken'
---
--- * 'rrslType'
---
--- * 'rrslManagedZone'
---
--- * 'rrslMaxResults'
-resourceRecordSetsList
-    :: Text -- ^ 'rrslProject'
-    -> Text -- ^ 'rrslManagedZone'
-    -> ResourceRecordSetsList
-resourceRecordSetsList pRrslProject_ pRrslManagedZone_ =
-  ResourceRecordSetsList'
-    { _rrslProject = pRrslProject_
-    , _rrslName = Nothing
-    , _rrslPageToken = Nothing
-    , _rrslType = Nothing
-    , _rrslManagedZone = pRrslManagedZone_
-    , _rrslMaxResults = Nothing
-    }
-
-
--- | Identifies the project addressed by this request.
-rrslProject :: Lens' ResourceRecordSetsList Text
-rrslProject
-  = lens _rrslProject (\ s a -> s{_rrslProject = a})
-
--- | Restricts the list to return only records with this fully qualified
--- domain name.
-rrslName :: Lens' ResourceRecordSetsList (Maybe Text)
-rrslName = lens _rrslName (\ s a -> s{_rrslName = a})
-
--- | Optional. A tag returned by a previous list request that was truncated.
--- Use this parameter to continue a previous list request.
-rrslPageToken :: Lens' ResourceRecordSetsList (Maybe Text)
-rrslPageToken
-  = lens _rrslPageToken
-      (\ s a -> s{_rrslPageToken = a})
-
--- | Restricts the list to return only records of this type. If present, the
--- \"name\" parameter must also be present.
-rrslType :: Lens' ResourceRecordSetsList (Maybe Text)
-rrslType = lens _rrslType (\ s a -> s{_rrslType = a})
-
--- | Identifies the managed zone addressed by this request. Can be the
--- managed zone name or id.
-rrslManagedZone :: Lens' ResourceRecordSetsList Text
-rrslManagedZone
-  = lens _rrslManagedZone
-      (\ s a -> s{_rrslManagedZone = a})
-
--- | Optional. Maximum number of results to be returned. If unspecified, the
--- server will decide how many results to return.
-rrslMaxResults :: Lens' ResourceRecordSetsList (Maybe Int32)
-rrslMaxResults
-  = lens _rrslMaxResults
-      (\ s a -> s{_rrslMaxResults = a})
-      . mapping _Coerce
-
-instance GoogleRequest ResourceRecordSetsList where
-        type Rs ResourceRecordSetsList =
-             ResourceRecordSetsListResponse
-        type Scopes ResourceRecordSetsList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/cloud-platform.read-only",
-               "https://www.googleapis.com/auth/ndev.clouddns.readonly",
-               "https://www.googleapis.com/auth/ndev.clouddns.readwrite"]
-        requestClient ResourceRecordSetsList'{..}
-          = go _rrslProject _rrslManagedZone _rrslName
-              _rrslPageToken
-              _rrslType
-              _rrslMaxResults
-              (Just AltJSON)
-              dNSService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ResourceRecordSetsListResource)
-                      mempty
diff --git a/gogol-dns.cabal b/gogol-dns.cabal
--- a/gogol-dns.cabal
+++ b/gogol-dns.cabal
@@ -1,60 +1,96 @@
-name:                  gogol-dns
-version:               0.5.0
-synopsis:              Google Cloud DNS 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
+cabal-version:      2.2
+name:               gogol-dns
+version:            1.0.0
+synopsis:           Google Cloud DNS 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:
-    Configures and serves authoritative DNS records.
-    .
-    /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 @v2beta1@
-    of the API.
+  .
+  /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 @v2@
+  of the API.
 
 source-repository head
-    type:     git
-    location: git://github.com/brendanhay/gogol.git
+  type:     git
+  location: git://github.com/brendanhay/gogol.git
+  subdir:   gogol-dns
 
+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:  Haskell2010
-    hs-source-dirs:    src gen
+  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
 
-    ghc-options:       -Wall
+  if (!flag(field-selectors) && impl(ghc >=9.2))
+    default-extensions: NoFieldSelectors
 
-    exposed-modules:
-          Network.Google.DNS
-        , Network.Google.DNS.Types
-        , Network.Google.Resource.DNS.Changes.Create
-        , Network.Google.Resource.DNS.Changes.Get
-        , Network.Google.Resource.DNS.Changes.List
-        , Network.Google.Resource.DNS.DNSKeys.Get
-        , Network.Google.Resource.DNS.DNSKeys.List
-        , Network.Google.Resource.DNS.ManagedZoneOperations.Get
-        , Network.Google.Resource.DNS.ManagedZoneOperations.List
-        , Network.Google.Resource.DNS.ManagedZones.Create
-        , Network.Google.Resource.DNS.ManagedZones.Delete
-        , Network.Google.Resource.DNS.ManagedZones.Get
-        , Network.Google.Resource.DNS.ManagedZones.List
-        , Network.Google.Resource.DNS.ManagedZones.Patch
-        , Network.Google.Resource.DNS.ManagedZones.Update
-        , Network.Google.Resource.DNS.Projects.Get
-        , Network.Google.Resource.DNS.ResourceRecordSets.List
+  exposed-modules:
+    Gogol.DNS
+    Gogol.DNS.Changes.Create
+    Gogol.DNS.Changes.Get
+    Gogol.DNS.Changes.List
+    Gogol.DNS.DnsKeys.Get
+    Gogol.DNS.DnsKeys.List
+    Gogol.DNS.ManagedZoneOperations.Get
+    Gogol.DNS.ManagedZoneOperations.List
+    Gogol.DNS.ManagedZones.Create
+    Gogol.DNS.ManagedZones.Delete
+    Gogol.DNS.ManagedZones.Get
+    Gogol.DNS.ManagedZones.List
+    Gogol.DNS.ManagedZones.Patch
+    Gogol.DNS.ManagedZones.Update
+    Gogol.DNS.Policies.Create
+    Gogol.DNS.Policies.Delete
+    Gogol.DNS.Policies.Get
+    Gogol.DNS.Policies.List
+    Gogol.DNS.Policies.Patch
+    Gogol.DNS.Policies.Update
+    Gogol.DNS.Projects.Get
+    Gogol.DNS.ResourceRecordSets.Create
+    Gogol.DNS.ResourceRecordSets.Delete
+    Gogol.DNS.ResourceRecordSets.Get
+    Gogol.DNS.ResourceRecordSets.List
+    Gogol.DNS.ResourceRecordSets.Patch
+    Gogol.DNS.ResponsePolicies.Create
+    Gogol.DNS.ResponsePolicies.Delete
+    Gogol.DNS.ResponsePolicies.Get
+    Gogol.DNS.ResponsePolicies.List
+    Gogol.DNS.ResponsePolicies.Patch
+    Gogol.DNS.ResponsePolicies.Update
+    Gogol.DNS.ResponsePolicyRules.Create
+    Gogol.DNS.ResponsePolicyRules.Delete
+    Gogol.DNS.ResponsePolicyRules.Get
+    Gogol.DNS.ResponsePolicyRules.List
+    Gogol.DNS.ResponsePolicyRules.Patch
+    Gogol.DNS.ResponsePolicyRules.Update
+    Gogol.DNS.Types
 
-    other-modules:
-          Network.Google.DNS.Types.Product
-        , Network.Google.DNS.Types.Sum
+  other-modules:
+    Gogol.DNS.Internal.Product
+    Gogol.DNS.Internal.Sum
 
-    build-depends:
-          gogol-core == 0.5.0.*
-        , base       >= 4.7 && < 5
+  build-depends:    gogol-core ^>=1.0.0
