-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Google Cloud DNS SDK.
--   
--   Configures and serves authoritative DNS records.
--   
--   <i>Warning:</i> 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 <tt>v2beta1</tt> of the API.
@package gogol-dns
@version 0.3.0


module Network.Google.DNS.Types

-- | Default request referring to version <tt>v2beta1</tt> of the Google
--   Cloud DNS API. This contains the host and root path used as a starting
--   point for constructing service requests.
dNSService :: ServiceConfig

-- | View your DNS records hosted by Google Cloud DNS
ndevClouddnsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/ndev.clouddns.readonly"]

-- | View your data across Google Cloud Platform services
cloudPlatformReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform.read-only"]

-- | View and manage your DNS records hosted by Google Cloud DNS
ndevClouddnsReadwriteScope :: Proxy '["https://www.googleapis.com/auth/ndev.clouddns.readwrite"]

-- | View and manage your data across Google Cloud Platform services
cloudPlatformScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform"]

-- | String mnemonic specifying the DNSSEC algorithm of this key.
data DNSKeySpecAlgorithm

-- | <pre>
--   ECDSAP256SHA256
--   </pre>
ECDSAP256SHA256 :: DNSKeySpecAlgorithm

-- | <pre>
--   ECDSAP384SHA384
--   </pre>
ECDSAP384SHA384 :: DNSKeySpecAlgorithm

-- | <pre>
--   RSASHA1
--   </pre>
RSASHA1 :: DNSKeySpecAlgorithm

-- | <pre>
--   RSASHA256
--   </pre>
RSASHA256 :: DNSKeySpecAlgorithm

-- | <pre>
--   RSASHA512
--   </pre>
RSASHA512 :: DNSKeySpecAlgorithm

-- | Specifies the mechanism used to provide authenticated
--   denial-of-existence responses. Output only while state is not OFF.
data ManagedZoneDNSSecConfigNonExistence

-- | <pre>
--   NSEC
--   </pre>
Nsec :: ManagedZoneDNSSecConfigNonExistence

-- | <pre>
--   NSEC3
--   </pre>
NSEC3 :: ManagedZoneDNSSecConfigNonExistence
data OperationDNSKeyContext

-- | Creates a value of <a>OperationDNSKeyContext</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>odkcOldValue</a></li>
--   <li><a>odkcNewValue</a></li>
--   </ul>
operationDNSKeyContext :: OperationDNSKeyContext

-- | The pre-operation DnsKey resource.
odkcOldValue :: Lens' OperationDNSKeyContext (Maybe DNSKey)

-- | The post-operation DnsKey resource.
odkcNewValue :: Lens' OperationDNSKeyContext (Maybe DNSKey)

-- | The response to a request to enumerate DnsKeys in a ManagedZone.
--   
--   <i>See:</i> <a>dnsKeysListResponse</a> smart constructor.
data DNSKeysListResponse

-- | Creates a value of <a>DNSKeysListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dklrNextPageToken</a></li>
--   <li><a>dklrDNSKeys</a></li>
--   <li><a>dklrKind</a></li>
--   <li><a>dklrHeader</a></li>
--   </ul>
dnsKeysListResponse :: DNSKeysListResponse

-- | 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)

-- | The requested resources.
dklrDNSKeys :: Lens' DNSKeysListResponse [DNSKey]

-- | Type of resource.
dklrKind :: Lens' DNSKeysListResponse Text
dklrHeader :: Lens' DNSKeysListResponse (Maybe ResponseHeader)

-- | The response to a request to enumerate Changes to a ResourceRecordSets
--   collection.
--   
--   <i>See:</i> <a>changesListResponse</a> smart constructor.
data ChangesListResponse

-- | Creates a value of <a>ChangesListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clrNextPageToken</a></li>
--   <li><a>clrChanges</a></li>
--   <li><a>clrKind</a></li>
--   <li><a>clrHeader</a></li>
--   </ul>
changesListResponse :: ChangesListResponse

-- | 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)

-- | The requested changes.
clrChanges :: Lens' ChangesListResponse [Change]

-- | Type of resource.
clrKind :: Lens' ChangesListResponse Text
clrHeader :: Lens' ChangesListResponse (Maybe ResponseHeader)

-- | Specifies whether DNSSEC is enabled, and what mode it is in.
data ManagedZoneDNSSecConfigState

-- | <pre>
--   OFF
--   </pre>
Off :: ManagedZoneDNSSecConfigState

-- | <pre>
--   ON
--   </pre>
ON :: ManagedZoneDNSSecConfigState

-- | <pre>
--   TRANSFER
--   </pre>
Transfer :: ManagedZoneDNSSecConfigState
data ManagedZonesDeleteResponse

-- | Creates a value of <a>ManagedZonesDeleteResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mzdrHeader</a></li>
--   </ul>
managedZonesDeleteResponse :: ManagedZonesDeleteResponse
mzdrHeader :: Lens' ManagedZonesDeleteResponse (Maybe ResponseHeader)

-- | 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.
--   
--   <i>See:</i> <a>project</a> smart constructor.
data Project

-- | Creates a value of <a>Project</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pKind</a></li>
--   <li><a>pId</a></li>
--   <li><a>pNumber</a></li>
--   <li><a>pQuota</a></li>
--   </ul>
project :: Project

-- | Identifies what kind of resource this is. Value: the fixed string
--   "dns#project".
pKind :: Lens' Project Text

-- | User assigned unique identifier for the resource (output only).
pId :: Lens' Project (Maybe Text)

-- | Unique numeric identifier for the resource; defined by the server
--   (output only).
pNumber :: Lens' Project (Maybe Word64)

-- | Quotas assigned to this project (output only).
pQuota :: Lens' Project (Maybe Quota)

-- | 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.
--   
--   <i>See:</i> <a>operation</a> smart constructor.
data Operation

-- | Creates a value of <a>Operation</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oStatus</a></li>
--   <li><a>oStartTime</a></li>
--   <li><a>oKind</a></li>
--   <li><a>oUser</a></li>
--   <li><a>oId</a></li>
--   <li><a>oType</a></li>
--   <li><a>oZoneContext</a></li>
--   <li><a>oDNSKeyContext</a></li>
--   </ul>
operation :: Operation

-- | Status of the operation. Can be one of the following: "PENDING" or
--   "DONE" (output only).
oStatus :: Lens' Operation (Maybe OperationStatus)

-- | The time that this operation was started by the server. This is in
--   RFC3339 text format (output only).
oStartTime :: Lens' Operation (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "dns#operation".
oKind :: Lens' Operation Text

-- | 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)

-- | 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)

-- | Type of the operation. Operations include insert, update, and delete
--   (output only).
oType :: Lens' Operation (Maybe Text)

-- | Only populated if the operation targeted a ManagedZone (output only).
oZoneContext :: Lens' Operation (Maybe OperationManagedZoneContext)

-- | Only populated if the operation targeted a DnsKey (output only).
oDNSKeyContext :: Lens' Operation (Maybe OperationDNSKeyContext)

-- | Parameters for DnsKey key generation. Used for generating initial keys
--   for a new ManagedZone and as default when adding a new DnsKey.
--   
--   <i>See:</i> <a>dnsKeySpec</a> smart constructor.
data DNSKeySpec

-- | Creates a value of <a>DNSKeySpec</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dksKeyType</a></li>
--   <li><a>dksKind</a></li>
--   <li><a>dksAlgorithm</a></li>
--   <li><a>dksKeyLength</a></li>
--   </ul>
dnsKeySpec :: DNSKeySpec

-- | 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.
dksKeyType :: Lens' DNSKeySpec (Maybe DNSKeySpecKeyType)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "dns#dnsKeySpec".
dksKind :: Lens' DNSKeySpec Text

-- | String mnemonic specifying the DNSSEC algorithm of this key.
dksAlgorithm :: Lens' DNSKeySpec (Maybe DNSKeySpecAlgorithm)

-- | Length of the keys in bits.
dksKeyLength :: Lens' DNSKeySpec (Maybe Word32)

-- | Sorting criterion. The only supported value is change sequence.
data ChangesListSortBy

-- | <pre>
--   CHANGE_SEQUENCE
--   </pre>
ChangeSequence :: ChangesListSortBy

-- | Specifies the algorithm used to calculate this digest.
data DNSKeyDigestType

-- | <pre>
--   SHA1
--   </pre>
SHA1 :: DNSKeyDigestType

-- | <pre>
--   SHA256
--   </pre>
SHA256 :: DNSKeyDigestType

-- | <pre>
--   SHA384
--   </pre>
SHA384 :: DNSKeyDigestType

-- | An atomic update to a collection of ResourceRecordSets.
--   
--   <i>See:</i> <a>change</a> smart constructor.
data Change

-- | Creates a value of <a>Change</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cStatus</a></li>
--   <li><a>cAdditions</a></li>
--   <li><a>cStartTime</a></li>
--   <li><a>cKind</a></li>
--   <li><a>cDeletions</a></li>
--   <li><a>cId</a></li>
--   <li><a>cIsServing</a></li>
--   </ul>
change :: Change

-- | Status of the operation (output only).
cStatus :: Lens' Change (Maybe ChangeStatus)

-- | Which ResourceRecordSets to add?
cAdditions :: Lens' Change [ResourceRecordSet]

-- | The time that this operation was started by the server (output only).
--   This is in RFC3339 text format.
cStartTime :: Lens' Change (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "dns#change".
cKind :: Lens' Change Text

-- | Which ResourceRecordSets to remove? Must match existing data exactly.
cDeletions :: Lens' Change [ResourceRecordSet]

-- | Unique identifier for the resource; defined by the server (output
--   only).
cId :: Lens' Change (Maybe Text)

-- | If the DNS queries for the zone will be served.
cIsServing :: Lens' Change (Maybe Bool)

-- | A DNSSEC key pair.
--   
--   <i>See:</i> <a>dnsKey</a> smart constructor.
data DNSKey

-- | Creates a value of <a>DNSKey</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dkCreationTime</a></li>
--   <li><a>dkKeyTag</a></li>
--   <li><a>dkKind</a></li>
--   <li><a>dkDigests</a></li>
--   <li><a>dkPublicKey</a></li>
--   <li><a>dkAlgorithm</a></li>
--   <li><a>dkId</a></li>
--   <li><a>dkType</a></li>
--   <li><a>dkKeyLength</a></li>
--   <li><a>dkIsActive</a></li>
--   <li><a>dkDescription</a></li>
--   </ul>
dnsKey :: DNSKey

-- | The time that this resource was created in the control plane. This is
--   in RFC3339 text format. Output only.
dkCreationTime :: Lens' DNSKey (Maybe Text)

-- | 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)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "dns#dnsKey".
dkKind :: Lens' DNSKey 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.
dkDigests :: Lens' DNSKey [DNSKeyDigest]

-- | Base64 encoded public half of this key. Output only.
dkPublicKey :: Lens' DNSKey (Maybe Text)

-- | String mnemonic specifying the DNSSEC algorithm of this key. Immutable
--   after creation time.
dkAlgorithm :: Lens' DNSKey (Maybe DNSKeyAlgorithm)

-- | Unique identifier for the resource; defined by the server (output
--   only).
dkId :: Lens' DNSKey (Maybe Text)

-- | 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)

-- | Length of the key in bits. Specified at creation time then immutable.
dkKeyLength :: Lens' DNSKey (Maybe Word32)

-- | 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)

-- | 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)

-- | Status of the operation. Can be one of the following: "PENDING" or
--   "DONE" (output only).
data OperationStatus

-- | <pre>
--   DONE
--   </pre>
Done :: OperationStatus

-- | <pre>
--   PENDING
--   </pre>
Pending :: OperationStatus
data OperationManagedZoneContext

-- | Creates a value of <a>OperationManagedZoneContext</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>omzcOldValue</a></li>
--   <li><a>omzcNewValue</a></li>
--   </ul>
operationManagedZoneContext :: OperationManagedZoneContext

-- | The pre-operation ManagedZone resource.
omzcOldValue :: Lens' OperationManagedZoneContext (Maybe ManagedZone)

-- | The post-operation ManagedZone resource.
omzcNewValue :: Lens' OperationManagedZoneContext (Maybe ManagedZone)

-- | String mnemonic specifying the DNSSEC algorithm of this key. Immutable
--   after creation time.
data DNSKeyAlgorithm

-- | <pre>
--   ECDSAP256SHA256
--   </pre>
DKAECDSAP256SHA256 :: DNSKeyAlgorithm

-- | <pre>
--   ECDSAP384SHA384
--   </pre>
DKAECDSAP384SHA384 :: DNSKeyAlgorithm

-- | <pre>
--   RSASHA1
--   </pre>
DKARSASHA1 :: DNSKeyAlgorithm

-- | <pre>
--   RSASHA256
--   </pre>
DKARSASHA256 :: DNSKeyAlgorithm

-- | <pre>
--   RSASHA512
--   </pre>
DKARSASHA512 :: DNSKeyAlgorithm

-- | Elements common to every response.
--   
--   <i>See:</i> <a>responseHeader</a> smart constructor.
data ResponseHeader

-- | Creates a value of <a>ResponseHeader</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rhOperationId</a></li>
--   </ul>
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).
rhOperationId :: Lens' ResponseHeader (Maybe Text)

-- | 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.
data DNSKeySpecKeyType

-- | <pre>
--   KEY_SIGNING
--   </pre>
KeySigning :: DNSKeySpecKeyType

-- | <pre>
--   ZONE_SIGNING
--   </pre>
ZoneSigning :: DNSKeySpecKeyType
data ManagedZoneOperationsListResponse

-- | Creates a value of <a>ManagedZoneOperationsListResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mzolrNextPageToken</a></li>
--   <li><a>mzolrKind</a></li>
--   <li><a>mzolrHeader</a></li>
--   <li><a>mzolrOperations</a></li>
--   </ul>
managedZoneOperationsListResponse :: ManagedZoneOperationsListResponse

-- | 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)

-- | Type of resource.
mzolrKind :: Lens' ManagedZoneOperationsListResponse Text
mzolrHeader :: Lens' ManagedZoneOperationsListResponse (Maybe ResponseHeader)

-- | The operation resources.
mzolrOperations :: Lens' ManagedZoneOperationsListResponse [Operation]
data ResourceRecordSetsListResponse

-- | Creates a value of <a>ResourceRecordSetsListResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrslrNextPageToken</a></li>
--   <li><a>rrslrKind</a></li>
--   <li><a>rrslrHeader</a></li>
--   <li><a>rrslrRrSets</a></li>
--   </ul>
resourceRecordSetsListResponse :: ResourceRecordSetsListResponse

-- | 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)

-- | Type of resource.
rrslrKind :: Lens' ResourceRecordSetsListResponse Text
rrslrHeader :: Lens' ResourceRecordSetsListResponse (Maybe ResponseHeader)

-- | The resource record set resources.
rrslrRrSets :: Lens' ResourceRecordSetsListResponse [ResourceRecordSet]

-- | Status of the operation (output only).
data ChangeStatus

-- | <pre>
--   DONE
--   </pre>
CSDone :: ChangeStatus

-- | <pre>
--   PENDING
--   </pre>
CSPending :: ChangeStatus
data ManagedZoneDNSSecConfig

-- | Creates a value of <a>ManagedZoneDNSSecConfig</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mzdscState</a></li>
--   <li><a>mzdscKind</a></li>
--   <li><a>mzdscDefaultKeySpecs</a></li>
--   <li><a>mzdscNonExistence</a></li>
--   </ul>
managedZoneDNSSecConfig :: ManagedZoneDNSSecConfig

-- | Specifies whether DNSSEC is enabled, and what mode it is in.
mzdscState :: Lens' ManagedZoneDNSSecConfig (Maybe ManagedZoneDNSSecConfigState)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "dns#managedZoneDnsSecConfig".
mzdscKind :: Lens' ManagedZoneDNSSecConfig Text

-- | Specifies parameters that will be used for generating initial DnsKeys
--   for this ManagedZone. Output only while state is not OFF.
mzdscDefaultKeySpecs :: Lens' ManagedZoneDNSSecConfig [DNSKeySpec]

-- | Specifies the mechanism used to provide authenticated
--   denial-of-existence responses. Output only while state is not OFF.
mzdscNonExistence :: Lens' ManagedZoneDNSSecConfig (Maybe ManagedZoneDNSSecConfigNonExistence)

-- | A unit of data that will be returned by the DNS servers.
--   
--   <i>See:</i> <a>resourceRecordSet</a> smart constructor.
data ResourceRecordSet

-- | Creates a value of <a>ResourceRecordSet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrsTtl</a></li>
--   <li><a>rrsKind</a></li>
--   <li><a>rrsSignatureRrDatas</a></li>
--   <li><a>rrsName</a></li>
--   <li><a>rrsType</a></li>
--   <li><a>rrsRrDatas</a></li>
--   </ul>
resourceRecordSet :: ResourceRecordSet

-- | Number of seconds that this ResourceRecordSet can be cached by
--   resolvers.
rrsTtl :: Lens' ResourceRecordSet (Maybe Int32)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "dns#resourceRecordSet".
rrsKind :: Lens' ResourceRecordSet Text

-- | As defined in RFC 4034 (section 3.2).
rrsSignatureRrDatas :: Lens' ResourceRecordSet [Text]

-- | For example, www.example.com.
rrsName :: Lens' ResourceRecordSet (Maybe Text)

-- | The identifier of a supported record type, for example, A, AAAA, MX,
--   TXT, and so on.
rrsType :: Lens' ResourceRecordSet (Maybe Text)

-- | As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1).
rrsRrDatas :: Lens' ResourceRecordSet [Text]

-- | 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.
--   
--   <i>See:</i> <a>managedZone</a> smart constructor.
data ManagedZone

-- | Creates a value of <a>ManagedZone</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mzCreationTime</a></li>
--   <li><a>mzKind</a></li>
--   <li><a>mzNameServerSet</a></li>
--   <li><a>mzName</a></li>
--   <li><a>mzId</a></li>
--   <li><a>mzDNSName</a></li>
--   <li><a>mzDescription</a></li>
--   <li><a>mzDNSsecConfig</a></li>
--   <li><a>mzNameServers</a></li>
--   </ul>
managedZone :: ManagedZone

-- | The time that this resource was created on the server. This is in
--   RFC3339 text format. Output only.
mzCreationTime :: Lens' ManagedZone (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "dns#managedZone".
mzKind :: Lens' ManagedZone 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 will leave this field unset.
mzNameServerSet :: Lens' ManagedZone (Maybe Text)

-- | 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)

-- | Unique identifier for the resource; defined by the server (output
--   only)
mzId :: Lens' ManagedZone (Maybe Word64)

-- | The DNS name of this managed zone, for instance "example.com.".
mzDNSName :: Lens' ManagedZone (Maybe 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.
mzDescription :: Lens' ManagedZone (Maybe Text)

-- | DNSSEC configuration.
mzDNSsecConfig :: Lens' ManagedZone (Maybe ManagedZoneDNSSecConfig)

-- | Delegate your managed_zone to these virtual name servers; defined by
--   the server (output only)
mzNameServers :: Lens' ManagedZone [Text]

-- | Limits associated with a Project.
--   
--   <i>See:</i> <a>quota</a> smart constructor.
data Quota

-- | Creates a value of <a>Quota</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>qRrSetDeletionsPerChange</a></li>
--   <li><a>qWhiteListedKeySpecs</a></li>
--   <li><a>qRrSetsPerManagedZone</a></li>
--   <li><a>qKind</a></li>
--   <li><a>qResourceRecordsPerRrSet</a></li>
--   <li><a>qRrSetAdditionsPerChange</a></li>
--   <li><a>qManagedZones</a></li>
--   <li><a>qTotalRrDataSizePerChange</a></li>
--   <li><a>qDNSKeysPerManagedZone</a></li>
--   </ul>
quota :: Quota

-- | Maximum allowed number of ResourceRecordSets to delete per
--   ChangesCreateRequest.
qRrSetDeletionsPerChange :: Lens' Quota (Maybe Int32)

-- | DNSSEC algorithm and key length types that can be used for DnsKeys.
qWhiteListedKeySpecs :: Lens' Quota [DNSKeySpec]

-- | Maximum allowed number of ResourceRecordSets per zone in the project.
qRrSetsPerManagedZone :: Lens' Quota (Maybe Int32)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "dns#quota".
qKind :: Lens' Quota Text

-- | Maximum allowed number of ResourceRecords per ResourceRecordSet.
qResourceRecordsPerRrSet :: Lens' Quota (Maybe Int32)

-- | Maximum allowed number of ResourceRecordSets to add per
--   ChangesCreateRequest.
qRrSetAdditionsPerChange :: Lens' Quota (Maybe Int32)

-- | Maximum allowed number of managed zones in the project.
qManagedZones :: Lens' Quota (Maybe Int32)

-- | Maximum allowed size for total rrdata in one ChangesCreateRequest in
--   bytes.
qTotalRrDataSizePerChange :: Lens' Quota (Maybe Int32)

-- | Maximum allowed number of DnsKeys per ManagedZone.
qDNSKeysPerManagedZone :: Lens' Quota (Maybe Int32)

-- | 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

-- | <pre>
--   KEY_SIGNING
--   </pre>
DKTKeySigning :: DNSKeyType

-- | <pre>
--   ZONE_SIGNING
--   </pre>
DKTZoneSigning :: DNSKeyType
data DNSKeyDigest

-- | Creates a value of <a>DNSKeyDigest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dkdDigest</a></li>
--   <li><a>dkdType</a></li>
--   </ul>
dnsKeyDigest :: DNSKeyDigest

-- | The base-16 encoded bytes of this digest. Suitable for use in a DS
--   resource record.
dkdDigest :: Lens' DNSKeyDigest (Maybe Text)

-- | Specifies the algorithm used to calculate this digest.
dkdType :: Lens' DNSKeyDigest (Maybe DNSKeyDigestType)

-- | Sorting criterion. The only supported values are START_TIME and ID.
data ManagedZoneOperationsListSortBy

-- | <pre>
--   ID
--   </pre>
ID :: ManagedZoneOperationsListSortBy

-- | <pre>
--   START_TIME
--   </pre>
StartTime :: ManagedZoneOperationsListSortBy
data ManagedZonesListResponse

-- | Creates a value of <a>ManagedZonesListResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mzlrNextPageToken</a></li>
--   <li><a>mzlrKind</a></li>
--   <li><a>mzlrHeader</a></li>
--   <li><a>mzlrManagedZones</a></li>
--   </ul>
managedZonesListResponse :: ManagedZonesListResponse

-- | 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)

-- | Type of resource.
mzlrKind :: Lens' ManagedZonesListResponse Text
mzlrHeader :: Lens' ManagedZonesListResponse (Maybe ResponseHeader)

-- | The managed zone resources.
mzlrManagedZones :: Lens' ManagedZonesListResponse [ManagedZone]


-- | Atomically update the ResourceRecordSet collection.
--   
--   <i>See:</i> <a>Google Cloud DNS API Reference</a> for
--   <tt>dns.changes.create</tt>.
module Network.Google.Resource.DNS.Changes.Create

-- | A resource alias for <tt>dns.changes.create</tt> method which the
--   <a>ChangesCreate</a> 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)))))))))

-- | Creates a value of <a>ChangesCreate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccProject</a></li>
--   <li><a>ccPayload</a></li>
--   <li><a>ccManagedZone</a></li>
--   <li><a>ccClientOperationId</a></li>
--   </ul>
changesCreate :: Text -> Change -> Text -> ChangesCreate

-- | Atomically update the ResourceRecordSet collection.
--   
--   <i>See:</i> <a>changesCreate</a> smart constructor.
data ChangesCreate

-- | Identifies the project addressed by this request.
ccProject :: Lens' ChangesCreate Text

-- | Multipart request metadata.
ccPayload :: Lens' ChangesCreate Change

-- | Identifies the managed zone addressed by this request. Can be the
--   managed zone name or id.
ccManagedZone :: Lens' ChangesCreate Text

-- | 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)
instance GHC.Generics.Generic Network.Google.Resource.DNS.Changes.Create.ChangesCreate
instance Data.Data.Data Network.Google.Resource.DNS.Changes.Create.ChangesCreate
instance GHC.Show.Show Network.Google.Resource.DNS.Changes.Create.ChangesCreate
instance GHC.Classes.Eq Network.Google.Resource.DNS.Changes.Create.ChangesCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DNS.Changes.Create.ChangesCreate


-- | Fetch the representation of an existing Change.
--   
--   <i>See:</i> <a>Google Cloud DNS API Reference</a> for
--   <tt>dns.changes.get</tt>.
module Network.Google.Resource.DNS.Changes.Get

-- | A resource alias for <tt>dns.changes.get</tt> method which the
--   <a>ChangesGet</a> 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)))))))))

-- | Creates a value of <a>ChangesGet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cgProject</a></li>
--   <li><a>cgChangeId</a></li>
--   <li><a>cgManagedZone</a></li>
--   <li><a>cgClientOperationId</a></li>
--   </ul>
changesGet :: Text -> Text -> Text -> ChangesGet

-- | Fetch the representation of an existing Change.
--   
--   <i>See:</i> <a>changesGet</a> smart constructor.
data ChangesGet

-- | Identifies the project addressed by this request.
cgProject :: Lens' ChangesGet Text

-- | The identifier of the requested change, from a previous
--   ResourceRecordSetsChangeResponse.
cgChangeId :: Lens' ChangesGet Text

-- | Identifies the managed zone addressed by this request. Can be the
--   managed zone name or id.
cgManagedZone :: Lens' ChangesGet Text

-- | 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)
instance GHC.Generics.Generic Network.Google.Resource.DNS.Changes.Get.ChangesGet
instance Data.Data.Data Network.Google.Resource.DNS.Changes.Get.ChangesGet
instance GHC.Show.Show Network.Google.Resource.DNS.Changes.Get.ChangesGet
instance GHC.Classes.Eq Network.Google.Resource.DNS.Changes.Get.ChangesGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DNS.Changes.Get.ChangesGet


-- | Enumerate Changes to a ResourceRecordSet collection.
--   
--   <i>See:</i> <a>Google Cloud DNS API Reference</a> for
--   <tt>dns.changes.list</tt>.
module Network.Google.Resource.DNS.Changes.List

-- | A resource alias for <tt>dns.changes.list</tt> method which the
--   <a>ChangesList</a> 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)))))))))))

-- | Creates a value of <a>ChangesList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clProject</a></li>
--   <li><a>clSortOrder</a></li>
--   <li><a>clPageToken</a></li>
--   <li><a>clManagedZone</a></li>
--   <li><a>clMaxResults</a></li>
--   <li><a>clSortBy</a></li>
--   </ul>
changesList :: Text -> Text -> ChangesList

-- | Enumerate Changes to a ResourceRecordSet collection.
--   
--   <i>See:</i> <a>changesList</a> smart constructor.
data ChangesList

-- | Identifies the project addressed by this request.
clProject :: Lens' ChangesList Text

-- | Sorting order direction: 'ascending' or 'descending'.
clSortOrder :: Lens' ChangesList (Maybe Text)

-- | 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)

-- | Identifies the managed zone addressed by this request. Can be the
--   managed zone name or id.
clManagedZone :: Lens' ChangesList Text

-- | Optional. Maximum number of results to be returned. If unspecified,
--   the server will decide how many results to return.
clMaxResults :: Lens' ChangesList (Maybe Int32)

-- | Sorting criterion. The only supported value is change sequence.
clSortBy :: Lens' ChangesList ChangesListSortBy
instance GHC.Generics.Generic Network.Google.Resource.DNS.Changes.List.ChangesList
instance Data.Data.Data Network.Google.Resource.DNS.Changes.List.ChangesList
instance GHC.Show.Show Network.Google.Resource.DNS.Changes.List.ChangesList
instance GHC.Classes.Eq Network.Google.Resource.DNS.Changes.List.ChangesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DNS.Changes.List.ChangesList


-- | Fetch the representation of an existing DnsKey.
--   
--   <i>See:</i> <a>Google Cloud DNS API Reference</a> for
--   <tt>dns.dnsKeys.get</tt>.
module Network.Google.Resource.DNS.DNSKeys.Get

-- | A resource alias for <tt>dns.dnsKeys.get</tt> method which the
--   <a>DNSKeysGet</a> 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))))))))))

-- | Creates a value of <a>DNSKeysGet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dkgProject</a></li>
--   <li><a>dkgDigestType</a></li>
--   <li><a>dkgDNSKeyId</a></li>
--   <li><a>dkgManagedZone</a></li>
--   <li><a>dkgClientOperationId</a></li>
--   </ul>
dnsKeysGet :: Text -> Text -> Text -> DNSKeysGet

-- | Fetch the representation of an existing DnsKey.
--   
--   <i>See:</i> <a>dnsKeysGet</a> smart constructor.
data DNSKeysGet

-- | Identifies the project addressed by this request.
dkgProject :: Lens' DNSKeysGet Text

-- | 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)

-- | The identifier of the requested DnsKey.
dkgDNSKeyId :: Lens' DNSKeysGet Text

-- | Identifies the managed zone addressed by this request. Can be the
--   managed zone name or id.
dkgManagedZone :: Lens' DNSKeysGet Text

-- | 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)
instance GHC.Generics.Generic Network.Google.Resource.DNS.DNSKeys.Get.DNSKeysGet
instance Data.Data.Data Network.Google.Resource.DNS.DNSKeys.Get.DNSKeysGet
instance GHC.Show.Show Network.Google.Resource.DNS.DNSKeys.Get.DNSKeysGet
instance GHC.Classes.Eq Network.Google.Resource.DNS.DNSKeys.Get.DNSKeysGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DNS.DNSKeys.Get.DNSKeysGet


-- | Enumerate DnsKeys to a ResourceRecordSet collection.
--   
--   <i>See:</i> <a>Google Cloud DNS API Reference</a> for
--   <tt>dns.dnsKeys.list</tt>.
module Network.Google.Resource.DNS.DNSKeys.List

-- | A resource alias for <tt>dns.dnsKeys.list</tt> method which the
--   <a>DNSKeysList</a> 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))))))))))

-- | Creates a value of <a>DNSKeysList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dklProject</a></li>
--   <li><a>dklDigestType</a></li>
--   <li><a>dklPageToken</a></li>
--   <li><a>dklManagedZone</a></li>
--   <li><a>dklMaxResults</a></li>
--   </ul>
dnsKeysList :: Text -> Text -> DNSKeysList

-- | Enumerate DnsKeys to a ResourceRecordSet collection.
--   
--   <i>See:</i> <a>dnsKeysList</a> smart constructor.
data DNSKeysList

-- | Identifies the project addressed by this request.
dklProject :: Lens' DNSKeysList Text

-- | 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)

-- | 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)

-- | Identifies the managed zone addressed by this request. Can be the
--   managed zone name or id.
dklManagedZone :: Lens' DNSKeysList Text

-- | Optional. Maximum number of results to be returned. If unspecified,
--   the server will decide how many results to return.
dklMaxResults :: Lens' DNSKeysList (Maybe Int32)
instance GHC.Generics.Generic Network.Google.Resource.DNS.DNSKeys.List.DNSKeysList
instance Data.Data.Data Network.Google.Resource.DNS.DNSKeys.List.DNSKeysList
instance GHC.Show.Show Network.Google.Resource.DNS.DNSKeys.List.DNSKeysList
instance GHC.Classes.Eq Network.Google.Resource.DNS.DNSKeys.List.DNSKeysList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DNS.DNSKeys.List.DNSKeysList


-- | Fetch the representation of an existing Operation.
--   
--   <i>See:</i> <a>Google Cloud DNS API Reference</a> for
--   <tt>dns.managedZoneOperations.get</tt>.
module Network.Google.Resource.DNS.ManagedZoneOperations.Get

-- | A resource alias for <tt>dns.managedZoneOperations.get</tt> method
--   which the <a>ManagedZoneOperationsGet</a> 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)))))))))

-- | Creates a value of <a>ManagedZoneOperationsGet</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mzogProject</a></li>
--   <li><a>mzogOperation</a></li>
--   <li><a>mzogManagedZone</a></li>
--   <li><a>mzogClientOperationId</a></li>
--   </ul>
managedZoneOperationsGet :: Text -> Text -> Text -> ManagedZoneOperationsGet

-- | Fetch the representation of an existing Operation.
--   
--   <i>See:</i> <a>managedZoneOperationsGet</a> smart constructor.
data ManagedZoneOperationsGet

-- | Identifies the project addressed by this request.
mzogProject :: Lens' ManagedZoneOperationsGet Text

-- | Identifies the operation addressed by this request.
mzogOperation :: Lens' ManagedZoneOperationsGet Text

-- | Identifies the managed zone addressed by this request.
mzogManagedZone :: Lens' ManagedZoneOperationsGet Text

-- | 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)
instance GHC.Generics.Generic Network.Google.Resource.DNS.ManagedZoneOperations.Get.ManagedZoneOperationsGet
instance Data.Data.Data Network.Google.Resource.DNS.ManagedZoneOperations.Get.ManagedZoneOperationsGet
instance GHC.Show.Show Network.Google.Resource.DNS.ManagedZoneOperations.Get.ManagedZoneOperationsGet
instance GHC.Classes.Eq Network.Google.Resource.DNS.ManagedZoneOperations.Get.ManagedZoneOperationsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DNS.ManagedZoneOperations.Get.ManagedZoneOperationsGet


-- | Enumerate Operations for the given ManagedZone.
--   
--   <i>See:</i> <a>Google Cloud DNS API Reference</a> for
--   <tt>dns.managedZoneOperations.list</tt>.
module Network.Google.Resource.DNS.ManagedZoneOperations.List

-- | A resource alias for <tt>dns.managedZoneOperations.list</tt> method
--   which the <a>ManagedZoneOperationsList</a> 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))))))))))

-- | Creates a value of <a>ManagedZoneOperationsList</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mzolProject</a></li>
--   <li><a>mzolPageToken</a></li>
--   <li><a>mzolManagedZone</a></li>
--   <li><a>mzolMaxResults</a></li>
--   <li><a>mzolSortBy</a></li>
--   </ul>
managedZoneOperationsList :: Text -> Text -> ManagedZoneOperationsList

-- | Enumerate Operations for the given ManagedZone.
--   
--   <i>See:</i> <a>managedZoneOperationsList</a> smart constructor.
data ManagedZoneOperationsList

-- | Identifies the project addressed by this request.
mzolProject :: Lens' ManagedZoneOperationsList Text

-- | 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)

-- | Identifies the managed zone addressed by this request.
mzolManagedZone :: Lens' ManagedZoneOperationsList Text

-- | Optional. Maximum number of results to be returned. If unspecified,
--   the server will decide how many results to return.
mzolMaxResults :: Lens' ManagedZoneOperationsList (Maybe Int32)

-- | Sorting criterion. The only supported values are START_TIME and ID.
mzolSortBy :: Lens' ManagedZoneOperationsList ManagedZoneOperationsListSortBy
instance GHC.Generics.Generic Network.Google.Resource.DNS.ManagedZoneOperations.List.ManagedZoneOperationsList
instance Data.Data.Data Network.Google.Resource.DNS.ManagedZoneOperations.List.ManagedZoneOperationsList
instance GHC.Show.Show Network.Google.Resource.DNS.ManagedZoneOperations.List.ManagedZoneOperationsList
instance GHC.Classes.Eq Network.Google.Resource.DNS.ManagedZoneOperations.List.ManagedZoneOperationsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DNS.ManagedZoneOperations.List.ManagedZoneOperationsList


-- | Create a new ManagedZone.
--   
--   <i>See:</i> <a>Google Cloud DNS API Reference</a> for
--   <tt>dns.managedZones.create</tt>.
module Network.Google.Resource.DNS.ManagedZones.Create

-- | A resource alias for <tt>dns.managedZones.create</tt> method which the
--   <a>ManagedZonesCreate</a> request conforms to.
type ManagedZonesCreateResource = "dns" :> ("v2beta1" :> ("projects" :> (Capture "project" Text :> ("managedZones" :> (QueryParam "clientOperationId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] ManagedZone :> Post '[JSON] ManagedZone)))))))

-- | Creates a value of <a>ManagedZonesCreate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mzcProject</a></li>
--   <li><a>mzcPayload</a></li>
--   <li><a>mzcClientOperationId</a></li>
--   </ul>
managedZonesCreate :: Text -> ManagedZone -> ManagedZonesCreate

-- | Create a new ManagedZone.
--   
--   <i>See:</i> <a>managedZonesCreate</a> smart constructor.
data ManagedZonesCreate

-- | Identifies the project addressed by this request.
mzcProject :: Lens' ManagedZonesCreate Text

-- | Multipart request metadata.
mzcPayload :: Lens' ManagedZonesCreate ManagedZone

-- | 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)
instance GHC.Generics.Generic Network.Google.Resource.DNS.ManagedZones.Create.ManagedZonesCreate
instance Data.Data.Data Network.Google.Resource.DNS.ManagedZones.Create.ManagedZonesCreate
instance GHC.Show.Show Network.Google.Resource.DNS.ManagedZones.Create.ManagedZonesCreate
instance GHC.Classes.Eq Network.Google.Resource.DNS.ManagedZones.Create.ManagedZonesCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DNS.ManagedZones.Create.ManagedZonesCreate


-- | Delete a previously created ManagedZone.
--   
--   <i>See:</i> <a>Google Cloud DNS API Reference</a> for
--   <tt>dns.managedZones.delete</tt>.
module Network.Google.Resource.DNS.ManagedZones.Delete

-- | A resource alias for <tt>dns.managedZones.delete</tt> method which the
--   <a>ManagedZonesDelete</a> request conforms to.
type ManagedZonesDeleteResource = "dns" :> ("v2beta1" :> ("projects" :> (Capture "project" Text :> ("managedZones" :> (Capture "managedZone" Text :> (QueryParam "clientOperationId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ManagedZonesDeleteResponse)))))))

-- | Creates a value of <a>ManagedZonesDelete</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mzdProject</a></li>
--   <li><a>mzdManagedZone</a></li>
--   <li><a>mzdClientOperationId</a></li>
--   </ul>
managedZonesDelete :: Text -> Text -> ManagedZonesDelete

-- | Delete a previously created ManagedZone.
--   
--   <i>See:</i> <a>managedZonesDelete</a> smart constructor.
data ManagedZonesDelete

-- | Identifies the project addressed by this request.
mzdProject :: Lens' ManagedZonesDelete Text

-- | Identifies the managed zone addressed by this request. Can be the
--   managed zone name or id.
mzdManagedZone :: Lens' ManagedZonesDelete Text

-- | 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)
instance GHC.Generics.Generic Network.Google.Resource.DNS.ManagedZones.Delete.ManagedZonesDelete
instance Data.Data.Data Network.Google.Resource.DNS.ManagedZones.Delete.ManagedZonesDelete
instance GHC.Show.Show Network.Google.Resource.DNS.ManagedZones.Delete.ManagedZonesDelete
instance GHC.Classes.Eq Network.Google.Resource.DNS.ManagedZones.Delete.ManagedZonesDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DNS.ManagedZones.Delete.ManagedZonesDelete


-- | Fetch the representation of an existing ManagedZone.
--   
--   <i>See:</i> <a>Google Cloud DNS API Reference</a> for
--   <tt>dns.managedZones.get</tt>.
module Network.Google.Resource.DNS.ManagedZones.Get

-- | A resource alias for <tt>dns.managedZones.get</tt> method which the
--   <a>ManagedZonesGet</a> request conforms to.
type ManagedZonesGetResource = "dns" :> ("v2beta1" :> ("projects" :> (Capture "project" Text :> ("managedZones" :> (Capture "managedZone" Text :> (QueryParam "clientOperationId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ManagedZone)))))))

-- | Creates a value of <a>ManagedZonesGet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mzgProject</a></li>
--   <li><a>mzgManagedZone</a></li>
--   <li><a>mzgClientOperationId</a></li>
--   </ul>
managedZonesGet :: Text -> Text -> ManagedZonesGet

-- | Fetch the representation of an existing ManagedZone.
--   
--   <i>See:</i> <a>managedZonesGet</a> smart constructor.
data ManagedZonesGet

-- | Identifies the project addressed by this request.
mzgProject :: Lens' ManagedZonesGet Text

-- | Identifies the managed zone addressed by this request. Can be the
--   managed zone name or id.
mzgManagedZone :: Lens' ManagedZonesGet Text

-- | 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)
instance GHC.Generics.Generic Network.Google.Resource.DNS.ManagedZones.Get.ManagedZonesGet
instance Data.Data.Data Network.Google.Resource.DNS.ManagedZones.Get.ManagedZonesGet
instance GHC.Show.Show Network.Google.Resource.DNS.ManagedZones.Get.ManagedZonesGet
instance GHC.Classes.Eq Network.Google.Resource.DNS.ManagedZones.Get.ManagedZonesGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DNS.ManagedZones.Get.ManagedZonesGet


-- | Enumerate ManagedZones that have been created but not yet deleted.
--   
--   <i>See:</i> <a>Google Cloud DNS API Reference</a> for
--   <tt>dns.managedZones.list</tt>.
module Network.Google.Resource.DNS.ManagedZones.List

-- | A resource alias for <tt>dns.managedZones.list</tt> method which the
--   <a>ManagedZonesList</a> 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))))))))

-- | Creates a value of <a>ManagedZonesList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mzlProject</a></li>
--   <li><a>mzlPageToken</a></li>
--   <li><a>mzlDNSName</a></li>
--   <li><a>mzlMaxResults</a></li>
--   </ul>
managedZonesList :: Text -> ManagedZonesList

-- | Enumerate ManagedZones that have been created but not yet deleted.
--   
--   <i>See:</i> <a>managedZonesList</a> smart constructor.
data ManagedZonesList

-- | Identifies the project addressed by this request.
mzlProject :: Lens' ManagedZonesList Text

-- | 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)

-- | Restricts the list to return only zones with this domain name.
mzlDNSName :: Lens' ManagedZonesList (Maybe Text)

-- | Optional. Maximum number of results to be returned. If unspecified,
--   the server will decide how many results to return.
mzlMaxResults :: Lens' ManagedZonesList (Maybe Int32)
instance GHC.Generics.Generic Network.Google.Resource.DNS.ManagedZones.List.ManagedZonesList
instance Data.Data.Data Network.Google.Resource.DNS.ManagedZones.List.ManagedZonesList
instance GHC.Show.Show Network.Google.Resource.DNS.ManagedZones.List.ManagedZonesList
instance GHC.Classes.Eq Network.Google.Resource.DNS.ManagedZones.List.ManagedZonesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DNS.ManagedZones.List.ManagedZonesList


-- | Update an existing ManagedZone. This method supports patch semantics.
--   
--   <i>See:</i> <a>Google Cloud DNS API Reference</a> for
--   <tt>dns.managedZones.patch</tt>.
module Network.Google.Resource.DNS.ManagedZones.Patch

-- | A resource alias for <tt>dns.managedZones.patch</tt> method which the
--   <a>ManagedZonesPatch</a> 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))))))))

-- | Creates a value of <a>ManagedZonesPatch</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mzpProject</a></li>
--   <li><a>mzpPayload</a></li>
--   <li><a>mzpManagedZone</a></li>
--   <li><a>mzpClientOperationId</a></li>
--   </ul>
managedZonesPatch :: Text -> ManagedZone -> Text -> ManagedZonesPatch

-- | Update an existing ManagedZone. This method supports patch semantics.
--   
--   <i>See:</i> <a>managedZonesPatch</a> smart constructor.
data ManagedZonesPatch

-- | Identifies the project addressed by this request.
mzpProject :: Lens' ManagedZonesPatch Text

-- | Multipart request metadata.
mzpPayload :: Lens' ManagedZonesPatch ManagedZone

-- | Identifies the managed zone addressed by this request. Can be the
--   managed zone name or id.
mzpManagedZone :: Lens' ManagedZonesPatch Text

-- | 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)
instance GHC.Generics.Generic Network.Google.Resource.DNS.ManagedZones.Patch.ManagedZonesPatch
instance Data.Data.Data Network.Google.Resource.DNS.ManagedZones.Patch.ManagedZonesPatch
instance GHC.Show.Show Network.Google.Resource.DNS.ManagedZones.Patch.ManagedZonesPatch
instance GHC.Classes.Eq Network.Google.Resource.DNS.ManagedZones.Patch.ManagedZonesPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DNS.ManagedZones.Patch.ManagedZonesPatch


-- | Update an existing ManagedZone.
--   
--   <i>See:</i> <a>Google Cloud DNS API Reference</a> for
--   <tt>dns.managedZones.update</tt>.
module Network.Google.Resource.DNS.ManagedZones.Update

-- | A resource alias for <tt>dns.managedZones.update</tt> method which the
--   <a>ManagedZonesUpdate</a> 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))))))))

-- | Creates a value of <a>ManagedZonesUpdate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mzuProject</a></li>
--   <li><a>mzuPayload</a></li>
--   <li><a>mzuManagedZone</a></li>
--   <li><a>mzuClientOperationId</a></li>
--   </ul>
managedZonesUpdate :: Text -> ManagedZone -> Text -> ManagedZonesUpdate

-- | Update an existing ManagedZone.
--   
--   <i>See:</i> <a>managedZonesUpdate</a> smart constructor.
data ManagedZonesUpdate

-- | Identifies the project addressed by this request.
mzuProject :: Lens' ManagedZonesUpdate Text

-- | Multipart request metadata.
mzuPayload :: Lens' ManagedZonesUpdate ManagedZone

-- | Identifies the managed zone addressed by this request. Can be the
--   managed zone name or id.
mzuManagedZone :: Lens' ManagedZonesUpdate Text

-- | 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)
instance GHC.Generics.Generic Network.Google.Resource.DNS.ManagedZones.Update.ManagedZonesUpdate
instance Data.Data.Data Network.Google.Resource.DNS.ManagedZones.Update.ManagedZonesUpdate
instance GHC.Show.Show Network.Google.Resource.DNS.ManagedZones.Update.ManagedZonesUpdate
instance GHC.Classes.Eq Network.Google.Resource.DNS.ManagedZones.Update.ManagedZonesUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DNS.ManagedZones.Update.ManagedZonesUpdate


-- | Fetch the representation of an existing Project.
--   
--   <i>See:</i> <a>Google Cloud DNS API Reference</a> for
--   <tt>dns.projects.get</tt>.
module Network.Google.Resource.DNS.Projects.Get

-- | A resource alias for <tt>dns.projects.get</tt> method which the
--   <a>ProjectsGet</a> request conforms to.
type ProjectsGetResource = "dns" :> ("v2beta1" :> ("projects" :> (Capture "project" Text :> (QueryParam "clientOperationId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Project)))))

-- | Creates a value of <a>ProjectsGet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pgProject</a></li>
--   <li><a>pgClientOperationId</a></li>
--   </ul>
projectsGet :: Text -> ProjectsGet

-- | Fetch the representation of an existing Project.
--   
--   <i>See:</i> <a>projectsGet</a> smart constructor.
data ProjectsGet

-- | Identifies the project addressed by this request.
pgProject :: Lens' ProjectsGet Text

-- | 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)
instance GHC.Generics.Generic Network.Google.Resource.DNS.Projects.Get.ProjectsGet
instance Data.Data.Data Network.Google.Resource.DNS.Projects.Get.ProjectsGet
instance GHC.Show.Show Network.Google.Resource.DNS.Projects.Get.ProjectsGet
instance GHC.Classes.Eq Network.Google.Resource.DNS.Projects.Get.ProjectsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DNS.Projects.Get.ProjectsGet


-- | Enumerate ResourceRecordSets that have been created but not yet
--   deleted.
--   
--   <i>See:</i> <a>Google Cloud DNS API Reference</a> for
--   <tt>dns.resourceRecordSets.list</tt>.
module Network.Google.Resource.DNS.ResourceRecordSets.List

-- | A resource alias for <tt>dns.resourceRecordSets.list</tt> method which
--   the <a>ResourceRecordSetsList</a> 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)))))))))))

-- | Creates a value of <a>ResourceRecordSetsList</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrslProject</a></li>
--   <li><a>rrslName</a></li>
--   <li><a>rrslPageToken</a></li>
--   <li><a>rrslType</a></li>
--   <li><a>rrslManagedZone</a></li>
--   <li><a>rrslMaxResults</a></li>
--   </ul>
resourceRecordSetsList :: Text -> Text -> ResourceRecordSetsList

-- | Enumerate ResourceRecordSets that have been created but not yet
--   deleted.
--   
--   <i>See:</i> <a>resourceRecordSetsList</a> smart constructor.
data ResourceRecordSetsList

-- | Identifies the project addressed by this request.
rrslProject :: Lens' ResourceRecordSetsList Text

-- | Restricts the list to return only records with this fully qualified
--   domain name.
rrslName :: Lens' ResourceRecordSetsList (Maybe Text)

-- | 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)

-- | Restricts the list to return only records of this type. If present,
--   the "name" parameter must also be present.
rrslType :: Lens' ResourceRecordSetsList (Maybe Text)

-- | Identifies the managed zone addressed by this request. Can be the
--   managed zone name or id.
rrslManagedZone :: Lens' ResourceRecordSetsList Text

-- | Optional. Maximum number of results to be returned. If unspecified,
--   the server will decide how many results to return.
rrslMaxResults :: Lens' ResourceRecordSetsList (Maybe Int32)
instance GHC.Generics.Generic Network.Google.Resource.DNS.ResourceRecordSets.List.ResourceRecordSetsList
instance Data.Data.Data Network.Google.Resource.DNS.ResourceRecordSets.List.ResourceRecordSetsList
instance GHC.Show.Show Network.Google.Resource.DNS.ResourceRecordSets.List.ResourceRecordSetsList
instance GHC.Classes.Eq Network.Google.Resource.DNS.ResourceRecordSets.List.ResourceRecordSetsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DNS.ResourceRecordSets.List.ResourceRecordSetsList


-- | Configures and serves authoritative DNS records.
--   
--   <i>See:</i> <a>Google Cloud DNS API Reference</a>
module Network.Google.DNS

-- | Default request referring to version <tt>v2beta1</tt> of the Google
--   Cloud DNS API. This contains the host and root path used as a starting
--   point for constructing service requests.
dNSService :: ServiceConfig

-- | View your DNS records hosted by Google Cloud DNS
ndevClouddnsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/ndev.clouddns.readonly"]

-- | View your data across Google Cloud Platform services
cloudPlatformReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform.read-only"]

-- | View and manage your DNS records hosted by Google Cloud DNS
ndevClouddnsReadwriteScope :: Proxy '["https://www.googleapis.com/auth/ndev.clouddns.readwrite"]

-- | View and manage your data across Google Cloud Platform services
cloudPlatformScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform"]

-- | 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)))))))))))))

-- | String mnemonic specifying the DNSSEC algorithm of this key.
data DNSKeySpecAlgorithm

-- | <pre>
--   ECDSAP256SHA256
--   </pre>
ECDSAP256SHA256 :: DNSKeySpecAlgorithm

-- | <pre>
--   ECDSAP384SHA384
--   </pre>
ECDSAP384SHA384 :: DNSKeySpecAlgorithm

-- | <pre>
--   RSASHA1
--   </pre>
RSASHA1 :: DNSKeySpecAlgorithm

-- | <pre>
--   RSASHA256
--   </pre>
RSASHA256 :: DNSKeySpecAlgorithm

-- | <pre>
--   RSASHA512
--   </pre>
RSASHA512 :: DNSKeySpecAlgorithm

-- | Specifies the mechanism used to provide authenticated
--   denial-of-existence responses. Output only while state is not OFF.
data ManagedZoneDNSSecConfigNonExistence

-- | <pre>
--   NSEC
--   </pre>
Nsec :: ManagedZoneDNSSecConfigNonExistence

-- | <pre>
--   NSEC3
--   </pre>
NSEC3 :: ManagedZoneDNSSecConfigNonExistence
data OperationDNSKeyContext

-- | Creates a value of <a>OperationDNSKeyContext</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>odkcOldValue</a></li>
--   <li><a>odkcNewValue</a></li>
--   </ul>
operationDNSKeyContext :: OperationDNSKeyContext

-- | The pre-operation DnsKey resource.
odkcOldValue :: Lens' OperationDNSKeyContext (Maybe DNSKey)

-- | The post-operation DnsKey resource.
odkcNewValue :: Lens' OperationDNSKeyContext (Maybe DNSKey)

-- | The response to a request to enumerate DnsKeys in a ManagedZone.
--   
--   <i>See:</i> <a>dnsKeysListResponse</a> smart constructor.
data DNSKeysListResponse

-- | Creates a value of <a>DNSKeysListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dklrNextPageToken</a></li>
--   <li><a>dklrDNSKeys</a></li>
--   <li><a>dklrKind</a></li>
--   <li><a>dklrHeader</a></li>
--   </ul>
dnsKeysListResponse :: DNSKeysListResponse

-- | 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)

-- | The requested resources.
dklrDNSKeys :: Lens' DNSKeysListResponse [DNSKey]

-- | Type of resource.
dklrKind :: Lens' DNSKeysListResponse Text
dklrHeader :: Lens' DNSKeysListResponse (Maybe ResponseHeader)

-- | The response to a request to enumerate Changes to a ResourceRecordSets
--   collection.
--   
--   <i>See:</i> <a>changesListResponse</a> smart constructor.
data ChangesListResponse

-- | Creates a value of <a>ChangesListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clrNextPageToken</a></li>
--   <li><a>clrChanges</a></li>
--   <li><a>clrKind</a></li>
--   <li><a>clrHeader</a></li>
--   </ul>
changesListResponse :: ChangesListResponse

-- | 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)

-- | The requested changes.
clrChanges :: Lens' ChangesListResponse [Change]

-- | Type of resource.
clrKind :: Lens' ChangesListResponse Text
clrHeader :: Lens' ChangesListResponse (Maybe ResponseHeader)

-- | Specifies whether DNSSEC is enabled, and what mode it is in.
data ManagedZoneDNSSecConfigState

-- | <pre>
--   OFF
--   </pre>
Off :: ManagedZoneDNSSecConfigState

-- | <pre>
--   ON
--   </pre>
ON :: ManagedZoneDNSSecConfigState

-- | <pre>
--   TRANSFER
--   </pre>
Transfer :: ManagedZoneDNSSecConfigState
data ManagedZonesDeleteResponse

-- | Creates a value of <a>ManagedZonesDeleteResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mzdrHeader</a></li>
--   </ul>
managedZonesDeleteResponse :: ManagedZonesDeleteResponse
mzdrHeader :: Lens' ManagedZonesDeleteResponse (Maybe ResponseHeader)

-- | 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.
--   
--   <i>See:</i> <a>project</a> smart constructor.
data Project

-- | Creates a value of <a>Project</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pKind</a></li>
--   <li><a>pId</a></li>
--   <li><a>pNumber</a></li>
--   <li><a>pQuota</a></li>
--   </ul>
project :: Project

-- | Identifies what kind of resource this is. Value: the fixed string
--   "dns#project".
pKind :: Lens' Project Text

-- | User assigned unique identifier for the resource (output only).
pId :: Lens' Project (Maybe Text)

-- | Unique numeric identifier for the resource; defined by the server
--   (output only).
pNumber :: Lens' Project (Maybe Word64)

-- | Quotas assigned to this project (output only).
pQuota :: Lens' Project (Maybe Quota)

-- | 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.
--   
--   <i>See:</i> <a>operation</a> smart constructor.
data Operation

-- | Creates a value of <a>Operation</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oStatus</a></li>
--   <li><a>oStartTime</a></li>
--   <li><a>oKind</a></li>
--   <li><a>oUser</a></li>
--   <li><a>oId</a></li>
--   <li><a>oType</a></li>
--   <li><a>oZoneContext</a></li>
--   <li><a>oDNSKeyContext</a></li>
--   </ul>
operation :: Operation

-- | Status of the operation. Can be one of the following: "PENDING" or
--   "DONE" (output only).
oStatus :: Lens' Operation (Maybe OperationStatus)

-- | The time that this operation was started by the server. This is in
--   RFC3339 text format (output only).
oStartTime :: Lens' Operation (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "dns#operation".
oKind :: Lens' Operation Text

-- | 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)

-- | 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)

-- | Type of the operation. Operations include insert, update, and delete
--   (output only).
oType :: Lens' Operation (Maybe Text)

-- | Only populated if the operation targeted a ManagedZone (output only).
oZoneContext :: Lens' Operation (Maybe OperationManagedZoneContext)

-- | Only populated if the operation targeted a DnsKey (output only).
oDNSKeyContext :: Lens' Operation (Maybe OperationDNSKeyContext)

-- | Parameters for DnsKey key generation. Used for generating initial keys
--   for a new ManagedZone and as default when adding a new DnsKey.
--   
--   <i>See:</i> <a>dnsKeySpec</a> smart constructor.
data DNSKeySpec

-- | Creates a value of <a>DNSKeySpec</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dksKeyType</a></li>
--   <li><a>dksKind</a></li>
--   <li><a>dksAlgorithm</a></li>
--   <li><a>dksKeyLength</a></li>
--   </ul>
dnsKeySpec :: DNSKeySpec

-- | 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.
dksKeyType :: Lens' DNSKeySpec (Maybe DNSKeySpecKeyType)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "dns#dnsKeySpec".
dksKind :: Lens' DNSKeySpec Text

-- | String mnemonic specifying the DNSSEC algorithm of this key.
dksAlgorithm :: Lens' DNSKeySpec (Maybe DNSKeySpecAlgorithm)

-- | Length of the keys in bits.
dksKeyLength :: Lens' DNSKeySpec (Maybe Word32)

-- | Sorting criterion. The only supported value is change sequence.
data ChangesListSortBy

-- | <pre>
--   CHANGE_SEQUENCE
--   </pre>
ChangeSequence :: ChangesListSortBy

-- | Specifies the algorithm used to calculate this digest.
data DNSKeyDigestType

-- | <pre>
--   SHA1
--   </pre>
SHA1 :: DNSKeyDigestType

-- | <pre>
--   SHA256
--   </pre>
SHA256 :: DNSKeyDigestType

-- | <pre>
--   SHA384
--   </pre>
SHA384 :: DNSKeyDigestType

-- | An atomic update to a collection of ResourceRecordSets.
--   
--   <i>See:</i> <a>change</a> smart constructor.
data Change

-- | Creates a value of <a>Change</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cStatus</a></li>
--   <li><a>cAdditions</a></li>
--   <li><a>cStartTime</a></li>
--   <li><a>cKind</a></li>
--   <li><a>cDeletions</a></li>
--   <li><a>cId</a></li>
--   <li><a>cIsServing</a></li>
--   </ul>
change :: Change

-- | Status of the operation (output only).
cStatus :: Lens' Change (Maybe ChangeStatus)

-- | Which ResourceRecordSets to add?
cAdditions :: Lens' Change [ResourceRecordSet]

-- | The time that this operation was started by the server (output only).
--   This is in RFC3339 text format.
cStartTime :: Lens' Change (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "dns#change".
cKind :: Lens' Change Text

-- | Which ResourceRecordSets to remove? Must match existing data exactly.
cDeletions :: Lens' Change [ResourceRecordSet]

-- | Unique identifier for the resource; defined by the server (output
--   only).
cId :: Lens' Change (Maybe Text)

-- | If the DNS queries for the zone will be served.
cIsServing :: Lens' Change (Maybe Bool)

-- | A DNSSEC key pair.
--   
--   <i>See:</i> <a>dnsKey</a> smart constructor.
data DNSKey

-- | Creates a value of <a>DNSKey</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dkCreationTime</a></li>
--   <li><a>dkKeyTag</a></li>
--   <li><a>dkKind</a></li>
--   <li><a>dkDigests</a></li>
--   <li><a>dkPublicKey</a></li>
--   <li><a>dkAlgorithm</a></li>
--   <li><a>dkId</a></li>
--   <li><a>dkType</a></li>
--   <li><a>dkKeyLength</a></li>
--   <li><a>dkIsActive</a></li>
--   <li><a>dkDescription</a></li>
--   </ul>
dnsKey :: DNSKey

-- | The time that this resource was created in the control plane. This is
--   in RFC3339 text format. Output only.
dkCreationTime :: Lens' DNSKey (Maybe Text)

-- | 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)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "dns#dnsKey".
dkKind :: Lens' DNSKey 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.
dkDigests :: Lens' DNSKey [DNSKeyDigest]

-- | Base64 encoded public half of this key. Output only.
dkPublicKey :: Lens' DNSKey (Maybe Text)

-- | String mnemonic specifying the DNSSEC algorithm of this key. Immutable
--   after creation time.
dkAlgorithm :: Lens' DNSKey (Maybe DNSKeyAlgorithm)

-- | Unique identifier for the resource; defined by the server (output
--   only).
dkId :: Lens' DNSKey (Maybe Text)

-- | 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)

-- | Length of the key in bits. Specified at creation time then immutable.
dkKeyLength :: Lens' DNSKey (Maybe Word32)

-- | 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)

-- | 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)

-- | Status of the operation. Can be one of the following: "PENDING" or
--   "DONE" (output only).
data OperationStatus

-- | <pre>
--   DONE
--   </pre>
Done :: OperationStatus

-- | <pre>
--   PENDING
--   </pre>
Pending :: OperationStatus
data OperationManagedZoneContext

-- | Creates a value of <a>OperationManagedZoneContext</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>omzcOldValue</a></li>
--   <li><a>omzcNewValue</a></li>
--   </ul>
operationManagedZoneContext :: OperationManagedZoneContext

-- | The pre-operation ManagedZone resource.
omzcOldValue :: Lens' OperationManagedZoneContext (Maybe ManagedZone)

-- | The post-operation ManagedZone resource.
omzcNewValue :: Lens' OperationManagedZoneContext (Maybe ManagedZone)

-- | String mnemonic specifying the DNSSEC algorithm of this key. Immutable
--   after creation time.
data DNSKeyAlgorithm

-- | <pre>
--   ECDSAP256SHA256
--   </pre>
DKAECDSAP256SHA256 :: DNSKeyAlgorithm

-- | <pre>
--   ECDSAP384SHA384
--   </pre>
DKAECDSAP384SHA384 :: DNSKeyAlgorithm

-- | <pre>
--   RSASHA1
--   </pre>
DKARSASHA1 :: DNSKeyAlgorithm

-- | <pre>
--   RSASHA256
--   </pre>
DKARSASHA256 :: DNSKeyAlgorithm

-- | <pre>
--   RSASHA512
--   </pre>
DKARSASHA512 :: DNSKeyAlgorithm

-- | Elements common to every response.
--   
--   <i>See:</i> <a>responseHeader</a> smart constructor.
data ResponseHeader

-- | Creates a value of <a>ResponseHeader</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rhOperationId</a></li>
--   </ul>
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).
rhOperationId :: Lens' ResponseHeader (Maybe Text)

-- | 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.
data DNSKeySpecKeyType

-- | <pre>
--   KEY_SIGNING
--   </pre>
KeySigning :: DNSKeySpecKeyType

-- | <pre>
--   ZONE_SIGNING
--   </pre>
ZoneSigning :: DNSKeySpecKeyType
data ManagedZoneOperationsListResponse

-- | Creates a value of <a>ManagedZoneOperationsListResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mzolrNextPageToken</a></li>
--   <li><a>mzolrKind</a></li>
--   <li><a>mzolrHeader</a></li>
--   <li><a>mzolrOperations</a></li>
--   </ul>
managedZoneOperationsListResponse :: ManagedZoneOperationsListResponse

-- | 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)

-- | Type of resource.
mzolrKind :: Lens' ManagedZoneOperationsListResponse Text
mzolrHeader :: Lens' ManagedZoneOperationsListResponse (Maybe ResponseHeader)

-- | The operation resources.
mzolrOperations :: Lens' ManagedZoneOperationsListResponse [Operation]
data ResourceRecordSetsListResponse

-- | Creates a value of <a>ResourceRecordSetsListResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrslrNextPageToken</a></li>
--   <li><a>rrslrKind</a></li>
--   <li><a>rrslrHeader</a></li>
--   <li><a>rrslrRrSets</a></li>
--   </ul>
resourceRecordSetsListResponse :: ResourceRecordSetsListResponse

-- | 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)

-- | Type of resource.
rrslrKind :: Lens' ResourceRecordSetsListResponse Text
rrslrHeader :: Lens' ResourceRecordSetsListResponse (Maybe ResponseHeader)

-- | The resource record set resources.
rrslrRrSets :: Lens' ResourceRecordSetsListResponse [ResourceRecordSet]

-- | Status of the operation (output only).
data ChangeStatus

-- | <pre>
--   DONE
--   </pre>
CSDone :: ChangeStatus

-- | <pre>
--   PENDING
--   </pre>
CSPending :: ChangeStatus
data ManagedZoneDNSSecConfig

-- | Creates a value of <a>ManagedZoneDNSSecConfig</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mzdscState</a></li>
--   <li><a>mzdscKind</a></li>
--   <li><a>mzdscDefaultKeySpecs</a></li>
--   <li><a>mzdscNonExistence</a></li>
--   </ul>
managedZoneDNSSecConfig :: ManagedZoneDNSSecConfig

-- | Specifies whether DNSSEC is enabled, and what mode it is in.
mzdscState :: Lens' ManagedZoneDNSSecConfig (Maybe ManagedZoneDNSSecConfigState)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "dns#managedZoneDnsSecConfig".
mzdscKind :: Lens' ManagedZoneDNSSecConfig Text

-- | Specifies parameters that will be used for generating initial DnsKeys
--   for this ManagedZone. Output only while state is not OFF.
mzdscDefaultKeySpecs :: Lens' ManagedZoneDNSSecConfig [DNSKeySpec]

-- | Specifies the mechanism used to provide authenticated
--   denial-of-existence responses. Output only while state is not OFF.
mzdscNonExistence :: Lens' ManagedZoneDNSSecConfig (Maybe ManagedZoneDNSSecConfigNonExistence)

-- | A unit of data that will be returned by the DNS servers.
--   
--   <i>See:</i> <a>resourceRecordSet</a> smart constructor.
data ResourceRecordSet

-- | Creates a value of <a>ResourceRecordSet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrsTtl</a></li>
--   <li><a>rrsKind</a></li>
--   <li><a>rrsSignatureRrDatas</a></li>
--   <li><a>rrsName</a></li>
--   <li><a>rrsType</a></li>
--   <li><a>rrsRrDatas</a></li>
--   </ul>
resourceRecordSet :: ResourceRecordSet

-- | Number of seconds that this ResourceRecordSet can be cached by
--   resolvers.
rrsTtl :: Lens' ResourceRecordSet (Maybe Int32)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "dns#resourceRecordSet".
rrsKind :: Lens' ResourceRecordSet Text

-- | As defined in RFC 4034 (section 3.2).
rrsSignatureRrDatas :: Lens' ResourceRecordSet [Text]

-- | For example, www.example.com.
rrsName :: Lens' ResourceRecordSet (Maybe Text)

-- | The identifier of a supported record type, for example, A, AAAA, MX,
--   TXT, and so on.
rrsType :: Lens' ResourceRecordSet (Maybe Text)

-- | As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1).
rrsRrDatas :: Lens' ResourceRecordSet [Text]

-- | 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.
--   
--   <i>See:</i> <a>managedZone</a> smart constructor.
data ManagedZone

-- | Creates a value of <a>ManagedZone</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mzCreationTime</a></li>
--   <li><a>mzKind</a></li>
--   <li><a>mzNameServerSet</a></li>
--   <li><a>mzName</a></li>
--   <li><a>mzId</a></li>
--   <li><a>mzDNSName</a></li>
--   <li><a>mzDescription</a></li>
--   <li><a>mzDNSsecConfig</a></li>
--   <li><a>mzNameServers</a></li>
--   </ul>
managedZone :: ManagedZone

-- | The time that this resource was created on the server. This is in
--   RFC3339 text format. Output only.
mzCreationTime :: Lens' ManagedZone (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "dns#managedZone".
mzKind :: Lens' ManagedZone 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 will leave this field unset.
mzNameServerSet :: Lens' ManagedZone (Maybe Text)

-- | 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)

-- | Unique identifier for the resource; defined by the server (output
--   only)
mzId :: Lens' ManagedZone (Maybe Word64)

-- | The DNS name of this managed zone, for instance "example.com.".
mzDNSName :: Lens' ManagedZone (Maybe 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.
mzDescription :: Lens' ManagedZone (Maybe Text)

-- | DNSSEC configuration.
mzDNSsecConfig :: Lens' ManagedZone (Maybe ManagedZoneDNSSecConfig)

-- | Delegate your managed_zone to these virtual name servers; defined by
--   the server (output only)
mzNameServers :: Lens' ManagedZone [Text]

-- | Limits associated with a Project.
--   
--   <i>See:</i> <a>quota</a> smart constructor.
data Quota

-- | Creates a value of <a>Quota</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>qRrSetDeletionsPerChange</a></li>
--   <li><a>qWhiteListedKeySpecs</a></li>
--   <li><a>qRrSetsPerManagedZone</a></li>
--   <li><a>qKind</a></li>
--   <li><a>qResourceRecordsPerRrSet</a></li>
--   <li><a>qRrSetAdditionsPerChange</a></li>
--   <li><a>qManagedZones</a></li>
--   <li><a>qTotalRrDataSizePerChange</a></li>
--   <li><a>qDNSKeysPerManagedZone</a></li>
--   </ul>
quota :: Quota

-- | Maximum allowed number of ResourceRecordSets to delete per
--   ChangesCreateRequest.
qRrSetDeletionsPerChange :: Lens' Quota (Maybe Int32)

-- | DNSSEC algorithm and key length types that can be used for DnsKeys.
qWhiteListedKeySpecs :: Lens' Quota [DNSKeySpec]

-- | Maximum allowed number of ResourceRecordSets per zone in the project.
qRrSetsPerManagedZone :: Lens' Quota (Maybe Int32)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "dns#quota".
qKind :: Lens' Quota Text

-- | Maximum allowed number of ResourceRecords per ResourceRecordSet.
qResourceRecordsPerRrSet :: Lens' Quota (Maybe Int32)

-- | Maximum allowed number of ResourceRecordSets to add per
--   ChangesCreateRequest.
qRrSetAdditionsPerChange :: Lens' Quota (Maybe Int32)

-- | Maximum allowed number of managed zones in the project.
qManagedZones :: Lens' Quota (Maybe Int32)

-- | Maximum allowed size for total rrdata in one ChangesCreateRequest in
--   bytes.
qTotalRrDataSizePerChange :: Lens' Quota (Maybe Int32)

-- | Maximum allowed number of DnsKeys per ManagedZone.
qDNSKeysPerManagedZone :: Lens' Quota (Maybe Int32)

-- | 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

-- | <pre>
--   KEY_SIGNING
--   </pre>
DKTKeySigning :: DNSKeyType

-- | <pre>
--   ZONE_SIGNING
--   </pre>
DKTZoneSigning :: DNSKeyType
data DNSKeyDigest

-- | Creates a value of <a>DNSKeyDigest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dkdDigest</a></li>
--   <li><a>dkdType</a></li>
--   </ul>
dnsKeyDigest :: DNSKeyDigest

-- | The base-16 encoded bytes of this digest. Suitable for use in a DS
--   resource record.
dkdDigest :: Lens' DNSKeyDigest (Maybe Text)

-- | Specifies the algorithm used to calculate this digest.
dkdType :: Lens' DNSKeyDigest (Maybe DNSKeyDigestType)

-- | Sorting criterion. The only supported values are START_TIME and ID.
data ManagedZoneOperationsListSortBy

-- | <pre>
--   ID
--   </pre>
ID :: ManagedZoneOperationsListSortBy

-- | <pre>
--   START_TIME
--   </pre>
StartTime :: ManagedZoneOperationsListSortBy
data ManagedZonesListResponse

-- | Creates a value of <a>ManagedZonesListResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mzlrNextPageToken</a></li>
--   <li><a>mzlrKind</a></li>
--   <li><a>mzlrHeader</a></li>
--   <li><a>mzlrManagedZones</a></li>
--   </ul>
managedZonesListResponse :: ManagedZonesListResponse

-- | 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)

-- | Type of resource.
mzlrKind :: Lens' ManagedZonesListResponse Text
mzlrHeader :: Lens' ManagedZonesListResponse (Maybe ResponseHeader)

-- | The managed zone resources.
mzlrManagedZones :: Lens' ManagedZonesListResponse [ManagedZone]
