<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="dns_v1.html">Cloud DNS API</a> . <a href="dns_v1.managedZoneOperations.html">managedZoneOperations</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#get">get(project, managedZone, operation, clientOperationId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Fetch the representation of an existing Operation.</p>
<p class="toc_element">
  <code><a href="#list">list(project, managedZone, pageToken=None, sortBy=None, maxResults=None, x__xgafv=None)</a></code></p>
<p class="firstline">Enumerate Operations for the given ManagedZone.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="get">get(project, managedZone, operation, clientOperationId=None, x__xgafv=None)</code>
  <pre>Fetch the representation of an existing Operation.

Args:
  project: string, Identifies the project addressed by this request. (required)
  managedZone: string, Identifies the managed zone addressed by this request. (required)
  operation: string, Identifies the operation addressed by this request. (required)
  clientOperationId: string, For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # 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.
    &quot;type&quot;: &quot;A String&quot;, # Type of the operation. Operations include insert, update, and delete (output only).
    &quot;user&quot;: &quot;A String&quot;, # User who requested the operation, for example: user@example.com. cloud-dns-system for operations automatically done by the system. (output only)
    &quot;id&quot;: &quot;A String&quot;, # 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)
    &quot;kind&quot;: &quot;dns#operation&quot;,
    &quot;dnsKeyContext&quot;: { # Only populated if the operation targeted a DnsKey (output only).
      &quot;newValue&quot;: { # A DNSSEC key pair. # The post-operation DnsKey resource.
        &quot;description&quot;: &quot;A String&quot;, # A mutable string of at most 1024 characters associated with this resource for the user&#x27;s convenience. Has no effect on the resource&#x27;s function.
        &quot;publicKey&quot;: &quot;A String&quot;, # Base64 encoded public half of this key. Output only.
        &quot;type&quot;: &quot;A String&quot;, # One of &quot;KEY_SIGNING&quot; or &quot;ZONE_SIGNING&quot;. 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.
        &quot;kind&quot;: &quot;dns#dnsKey&quot;,
        &quot;keyTag&quot;: 42, # 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&#x27;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.
        &quot;creationTime&quot;: &quot;A String&quot;, # The time that this resource was created in the control plane. This is in RFC3339 text format. Output only.
        &quot;algorithm&quot;: &quot;A String&quot;, # String mnemonic specifying the DNSSEC algorithm of this key. Immutable after creation time.
        &quot;keyLength&quot;: 42, # Length of the key in bits. Specified at creation time then immutable.
        &quot;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (output only).
        &quot;digests&quot;: [ # 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.
          {
            &quot;type&quot;: &quot;A String&quot;, # Specifies the algorithm used to calculate this digest.
            &quot;digest&quot;: &quot;A String&quot;, # The base-16 encoded bytes of this digest. Suitable for use in a DS resource record.
          },
        ],
        &quot;isActive&quot;: True or False, # 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.
      },
      &quot;oldValue&quot;: { # A DNSSEC key pair. # The pre-operation DnsKey resource.
        &quot;description&quot;: &quot;A String&quot;, # A mutable string of at most 1024 characters associated with this resource for the user&#x27;s convenience. Has no effect on the resource&#x27;s function.
        &quot;publicKey&quot;: &quot;A String&quot;, # Base64 encoded public half of this key. Output only.
        &quot;type&quot;: &quot;A String&quot;, # One of &quot;KEY_SIGNING&quot; or &quot;ZONE_SIGNING&quot;. 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.
        &quot;kind&quot;: &quot;dns#dnsKey&quot;,
        &quot;keyTag&quot;: 42, # 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&#x27;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.
        &quot;creationTime&quot;: &quot;A String&quot;, # The time that this resource was created in the control plane. This is in RFC3339 text format. Output only.
        &quot;algorithm&quot;: &quot;A String&quot;, # String mnemonic specifying the DNSSEC algorithm of this key. Immutable after creation time.
        &quot;keyLength&quot;: 42, # Length of the key in bits. Specified at creation time then immutable.
        &quot;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (output only).
        &quot;digests&quot;: [ # 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.
          {
            &quot;type&quot;: &quot;A String&quot;, # Specifies the algorithm used to calculate this digest.
            &quot;digest&quot;: &quot;A String&quot;, # The base-16 encoded bytes of this digest. Suitable for use in a DS resource record.
          },
        ],
        &quot;isActive&quot;: True or False, # 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.
      },
    },
    &quot;startTime&quot;: &quot;A String&quot;, # The time that this operation was started by the server. This is in RFC3339 text format (output only).
    &quot;status&quot;: &quot;A String&quot;, # Status of the operation. Can be one of the following: &quot;PENDING&quot; or &quot;DONE&quot; (output only). A status of &quot;DONE&quot; means that the request to update the authoritative servers has been sent, but the servers might not be updated yet.
    &quot;zoneContext&quot;: { # Only populated if the operation targeted a ManagedZone (output only).
      &quot;oldValue&quot;: { # 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. # The pre-operation ManagedZone resource.
        &quot;dnssecConfig&quot;: { # DNSSEC configuration.
          &quot;defaultKeySpecs&quot;: [ # Specifies parameters for generating initial DnsKeys for this ManagedZone. Can only be changed while the state is OFF.
            { # Parameters for DnsKey key generation. Used for generating initial keys for a new ManagedZone and as default when adding a new DnsKey.
              &quot;keyType&quot;: &quot;A String&quot;, # Specifies whether this is a key signing key (KSK) or a zone signing key (ZSK). Key signing keys have the Secure Entry Point flag set and, when active, will only be used to sign resource record sets of type DNSKEY. Zone signing keys do not have the Secure Entry Point flag set and will be used to sign all other types of resource record sets.
              &quot;kind&quot;: &quot;dns#dnsKeySpec&quot;,
              &quot;algorithm&quot;: &quot;A String&quot;, # String mnemonic specifying the DNSSEC algorithm of this key.
              &quot;keyLength&quot;: 42, # Length of the keys in bits.
            },
          ],
          &quot;state&quot;: &quot;A String&quot;, # Specifies whether DNSSEC is enabled, and what mode it is in.
          &quot;nonExistence&quot;: &quot;A String&quot;, # Specifies the mechanism for authenticated denial-of-existence responses. Can only be changed while the state is OFF.
          &quot;kind&quot;: &quot;dns#managedZoneDnsSecConfig&quot;,
        },
        &quot;privateVisibilityConfig&quot;: { # For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.
          &quot;networks&quot;: [ # The list of VPC networks that can see this zone.
            {
              &quot;kind&quot;: &quot;dns#managedZonePrivateVisibilityConfigNetwork&quot;,
              &quot;networkUrl&quot;: &quot;A String&quot;, # The fully qualified URL of the VPC network to bind to. This should be formatted like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}
            },
          ],
          &quot;kind&quot;: &quot;dns#managedZonePrivateVisibilityConfig&quot;,
        },
        &quot;creationTime&quot;: &quot;A String&quot;, # The time that this resource was created on the server. This is in RFC3339 text format. Output only.
        &quot;nameServers&quot;: [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
          &quot;A String&quot;,
        ],
        &quot;labels&quot;: { # User labels.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
        &quot;forwardingConfig&quot;: { # The presence for this field indicates that outbound forwarding is enabled for this zone. The value of this field contains the set of destinations to forward to.
          &quot;kind&quot;: &quot;dns#managedZoneForwardingConfig&quot;,
          &quot;targetNameServers&quot;: [ # List of target name servers to forward to. Cloud DNS will select the best available name server if more than one target is given.
            {
              &quot;forwardingPath&quot;: &quot;A String&quot;, # Forwarding path for this NameServerTarget. If unset or set to DEFAULT, Cloud DNS will make forwarding decision based on address ranges, i.e. RFC1918 addresses go to the VPC, non-RFC1918 addresses go to the Internet. When set to PRIVATE, Cloud DNS will always send queries through VPC for this target.
              &quot;kind&quot;: &quot;dns#managedZoneForwardingConfigNameServerTarget&quot;,
              &quot;ipv4Address&quot;: &quot;A String&quot;, # IPv4 address of a target name server.
            },
          ],
        },
        &quot;kind&quot;: &quot;dns#managedZone&quot;,
        &quot;name&quot;: &quot;A String&quot;, # 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.
        &quot;description&quot;: &quot;A String&quot;, # A mutable string of at most 1024 characters associated with this resource for the user&#x27;s convenience. Has no effect on the managed zone&#x27;s function.
        &quot;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (output only)
        &quot;peeringConfig&quot;: { # The presence of this field indicates that DNS Peering is enabled for this zone. The value of this field contains the network to peer with.
          &quot;kind&quot;: &quot;dns#managedZonePeeringConfig&quot;,
          &quot;targetNetwork&quot;: { # The network with which to peer.
            &quot;deactivateTime&quot;: &quot;A String&quot;, # The time at which the zone was deactivated, in RFC 3339 date-time format. An empty string indicates that the peering connection is active. The producer network can deactivate a zone. The zone is automatically deactivated if the producer network that the zone targeted is deleted. Output only.
            &quot;networkUrl&quot;: &quot;A String&quot;, # The fully qualified URL of the VPC network to forward queries to. This should be formatted like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}
            &quot;kind&quot;: &quot;dns#managedZonePeeringConfigTargetNetwork&quot;,
          },
        },
        &quot;nameServerSet&quot;: &quot;A String&quot;, # 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.
        &quot;dnsName&quot;: &quot;A String&quot;, # The DNS name of this managed zone, for instance &quot;example.com.&quot;.
        &quot;visibility&quot;: &quot;A String&quot;, # The zone&#x27;s visibility: public zones are exposed to the Internet, while private zones are visible only to Virtual Private Cloud resources.
        &quot;reverseLookupConfig&quot;: { # The presence of this field indicates that this is a managed reverse lookup zone and Cloud DNS will resolve reverse lookup queries using automatically configured records for VPC resources. This only applies to networks listed under private_visibility_config.
          &quot;kind&quot;: &quot;dns#managedZoneReverseLookupConfig&quot;,
        },
      },
      &quot;newValue&quot;: { # 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. # The post-operation ManagedZone resource.
        &quot;dnssecConfig&quot;: { # DNSSEC configuration.
          &quot;defaultKeySpecs&quot;: [ # Specifies parameters for generating initial DnsKeys for this ManagedZone. Can only be changed while the state is OFF.
            { # Parameters for DnsKey key generation. Used for generating initial keys for a new ManagedZone and as default when adding a new DnsKey.
              &quot;keyType&quot;: &quot;A String&quot;, # Specifies whether this is a key signing key (KSK) or a zone signing key (ZSK). Key signing keys have the Secure Entry Point flag set and, when active, will only be used to sign resource record sets of type DNSKEY. Zone signing keys do not have the Secure Entry Point flag set and will be used to sign all other types of resource record sets.
              &quot;kind&quot;: &quot;dns#dnsKeySpec&quot;,
              &quot;algorithm&quot;: &quot;A String&quot;, # String mnemonic specifying the DNSSEC algorithm of this key.
              &quot;keyLength&quot;: 42, # Length of the keys in bits.
            },
          ],
          &quot;state&quot;: &quot;A String&quot;, # Specifies whether DNSSEC is enabled, and what mode it is in.
          &quot;nonExistence&quot;: &quot;A String&quot;, # Specifies the mechanism for authenticated denial-of-existence responses. Can only be changed while the state is OFF.
          &quot;kind&quot;: &quot;dns#managedZoneDnsSecConfig&quot;,
        },
        &quot;privateVisibilityConfig&quot;: { # For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.
          &quot;networks&quot;: [ # The list of VPC networks that can see this zone.
            {
              &quot;kind&quot;: &quot;dns#managedZonePrivateVisibilityConfigNetwork&quot;,
              &quot;networkUrl&quot;: &quot;A String&quot;, # The fully qualified URL of the VPC network to bind to. This should be formatted like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}
            },
          ],
          &quot;kind&quot;: &quot;dns#managedZonePrivateVisibilityConfig&quot;,
        },
        &quot;creationTime&quot;: &quot;A String&quot;, # The time that this resource was created on the server. This is in RFC3339 text format. Output only.
        &quot;nameServers&quot;: [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
          &quot;A String&quot;,
        ],
        &quot;labels&quot;: { # User labels.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
        &quot;forwardingConfig&quot;: { # The presence for this field indicates that outbound forwarding is enabled for this zone. The value of this field contains the set of destinations to forward to.
          &quot;kind&quot;: &quot;dns#managedZoneForwardingConfig&quot;,
          &quot;targetNameServers&quot;: [ # List of target name servers to forward to. Cloud DNS will select the best available name server if more than one target is given.
            {
              &quot;forwardingPath&quot;: &quot;A String&quot;, # Forwarding path for this NameServerTarget. If unset or set to DEFAULT, Cloud DNS will make forwarding decision based on address ranges, i.e. RFC1918 addresses go to the VPC, non-RFC1918 addresses go to the Internet. When set to PRIVATE, Cloud DNS will always send queries through VPC for this target.
              &quot;kind&quot;: &quot;dns#managedZoneForwardingConfigNameServerTarget&quot;,
              &quot;ipv4Address&quot;: &quot;A String&quot;, # IPv4 address of a target name server.
            },
          ],
        },
        &quot;kind&quot;: &quot;dns#managedZone&quot;,
        &quot;name&quot;: &quot;A String&quot;, # 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.
        &quot;description&quot;: &quot;A String&quot;, # A mutable string of at most 1024 characters associated with this resource for the user&#x27;s convenience. Has no effect on the managed zone&#x27;s function.
        &quot;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (output only)
        &quot;peeringConfig&quot;: { # The presence of this field indicates that DNS Peering is enabled for this zone. The value of this field contains the network to peer with.
          &quot;kind&quot;: &quot;dns#managedZonePeeringConfig&quot;,
          &quot;targetNetwork&quot;: { # The network with which to peer.
            &quot;deactivateTime&quot;: &quot;A String&quot;, # The time at which the zone was deactivated, in RFC 3339 date-time format. An empty string indicates that the peering connection is active. The producer network can deactivate a zone. The zone is automatically deactivated if the producer network that the zone targeted is deleted. Output only.
            &quot;networkUrl&quot;: &quot;A String&quot;, # The fully qualified URL of the VPC network to forward queries to. This should be formatted like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}
            &quot;kind&quot;: &quot;dns#managedZonePeeringConfigTargetNetwork&quot;,
          },
        },
        &quot;nameServerSet&quot;: &quot;A String&quot;, # 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.
        &quot;dnsName&quot;: &quot;A String&quot;, # The DNS name of this managed zone, for instance &quot;example.com.&quot;.
        &quot;visibility&quot;: &quot;A String&quot;, # The zone&#x27;s visibility: public zones are exposed to the Internet, while private zones are visible only to Virtual Private Cloud resources.
        &quot;reverseLookupConfig&quot;: { # The presence of this field indicates that this is a managed reverse lookup zone and Cloud DNS will resolve reverse lookup queries using automatically configured records for VPC resources. This only applies to networks listed under private_visibility_config.
          &quot;kind&quot;: &quot;dns#managedZoneReverseLookupConfig&quot;,
        },
      },
    },
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(project, managedZone, pageToken=None, sortBy=None, maxResults=None, x__xgafv=None)</code>
  <pre>Enumerate Operations for the given ManagedZone.

Args:
  project: string, Identifies the project addressed by this request. (required)
  managedZone: string, Identifies the managed zone addressed by this request. (required)
  pageToken: string, Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.
  sortBy: string, Sorting criterion. The only supported values are START_TIME and ID.
    Allowed values
      startTime - 
      id - 
  maxResults: integer, Optional. Maximum number of results to be returned. If unspecified, the server will decide how many results to return.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
    &quot;operations&quot;: [ # The operation resources.
      { # 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.
        &quot;type&quot;: &quot;A String&quot;, # Type of the operation. Operations include insert, update, and delete (output only).
        &quot;user&quot;: &quot;A String&quot;, # User who requested the operation, for example: user@example.com. cloud-dns-system for operations automatically done by the system. (output only)
        &quot;id&quot;: &quot;A String&quot;, # 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)
        &quot;kind&quot;: &quot;dns#operation&quot;,
        &quot;dnsKeyContext&quot;: { # Only populated if the operation targeted a DnsKey (output only).
          &quot;newValue&quot;: { # A DNSSEC key pair. # The post-operation DnsKey resource.
            &quot;description&quot;: &quot;A String&quot;, # A mutable string of at most 1024 characters associated with this resource for the user&#x27;s convenience. Has no effect on the resource&#x27;s function.
            &quot;publicKey&quot;: &quot;A String&quot;, # Base64 encoded public half of this key. Output only.
            &quot;type&quot;: &quot;A String&quot;, # One of &quot;KEY_SIGNING&quot; or &quot;ZONE_SIGNING&quot;. 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.
            &quot;kind&quot;: &quot;dns#dnsKey&quot;,
            &quot;keyTag&quot;: 42, # 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&#x27;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.
            &quot;creationTime&quot;: &quot;A String&quot;, # The time that this resource was created in the control plane. This is in RFC3339 text format. Output only.
            &quot;algorithm&quot;: &quot;A String&quot;, # String mnemonic specifying the DNSSEC algorithm of this key. Immutable after creation time.
            &quot;keyLength&quot;: 42, # Length of the key in bits. Specified at creation time then immutable.
            &quot;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (output only).
            &quot;digests&quot;: [ # 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.
              {
                &quot;type&quot;: &quot;A String&quot;, # Specifies the algorithm used to calculate this digest.
                &quot;digest&quot;: &quot;A String&quot;, # The base-16 encoded bytes of this digest. Suitable for use in a DS resource record.
              },
            ],
            &quot;isActive&quot;: True or False, # 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.
          },
          &quot;oldValue&quot;: { # A DNSSEC key pair. # The pre-operation DnsKey resource.
            &quot;description&quot;: &quot;A String&quot;, # A mutable string of at most 1024 characters associated with this resource for the user&#x27;s convenience. Has no effect on the resource&#x27;s function.
            &quot;publicKey&quot;: &quot;A String&quot;, # Base64 encoded public half of this key. Output only.
            &quot;type&quot;: &quot;A String&quot;, # One of &quot;KEY_SIGNING&quot; or &quot;ZONE_SIGNING&quot;. 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.
            &quot;kind&quot;: &quot;dns#dnsKey&quot;,
            &quot;keyTag&quot;: 42, # 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&#x27;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.
            &quot;creationTime&quot;: &quot;A String&quot;, # The time that this resource was created in the control plane. This is in RFC3339 text format. Output only.
            &quot;algorithm&quot;: &quot;A String&quot;, # String mnemonic specifying the DNSSEC algorithm of this key. Immutable after creation time.
            &quot;keyLength&quot;: 42, # Length of the key in bits. Specified at creation time then immutable.
            &quot;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (output only).
            &quot;digests&quot;: [ # 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.
              {
                &quot;type&quot;: &quot;A String&quot;, # Specifies the algorithm used to calculate this digest.
                &quot;digest&quot;: &quot;A String&quot;, # The base-16 encoded bytes of this digest. Suitable for use in a DS resource record.
              },
            ],
            &quot;isActive&quot;: True or False, # 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.
          },
        },
        &quot;startTime&quot;: &quot;A String&quot;, # The time that this operation was started by the server. This is in RFC3339 text format (output only).
        &quot;status&quot;: &quot;A String&quot;, # Status of the operation. Can be one of the following: &quot;PENDING&quot; or &quot;DONE&quot; (output only). A status of &quot;DONE&quot; means that the request to update the authoritative servers has been sent, but the servers might not be updated yet.
        &quot;zoneContext&quot;: { # Only populated if the operation targeted a ManagedZone (output only).
          &quot;oldValue&quot;: { # 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. # The pre-operation ManagedZone resource.
            &quot;dnssecConfig&quot;: { # DNSSEC configuration.
              &quot;defaultKeySpecs&quot;: [ # Specifies parameters for generating initial DnsKeys for this ManagedZone. Can only be changed while the state is OFF.
                { # Parameters for DnsKey key generation. Used for generating initial keys for a new ManagedZone and as default when adding a new DnsKey.
                  &quot;keyType&quot;: &quot;A String&quot;, # Specifies whether this is a key signing key (KSK) or a zone signing key (ZSK). Key signing keys have the Secure Entry Point flag set and, when active, will only be used to sign resource record sets of type DNSKEY. Zone signing keys do not have the Secure Entry Point flag set and will be used to sign all other types of resource record sets.
                  &quot;kind&quot;: &quot;dns#dnsKeySpec&quot;,
                  &quot;algorithm&quot;: &quot;A String&quot;, # String mnemonic specifying the DNSSEC algorithm of this key.
                  &quot;keyLength&quot;: 42, # Length of the keys in bits.
                },
              ],
              &quot;state&quot;: &quot;A String&quot;, # Specifies whether DNSSEC is enabled, and what mode it is in.
              &quot;nonExistence&quot;: &quot;A String&quot;, # Specifies the mechanism for authenticated denial-of-existence responses. Can only be changed while the state is OFF.
              &quot;kind&quot;: &quot;dns#managedZoneDnsSecConfig&quot;,
            },
            &quot;privateVisibilityConfig&quot;: { # For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.
              &quot;networks&quot;: [ # The list of VPC networks that can see this zone.
                {
                  &quot;kind&quot;: &quot;dns#managedZonePrivateVisibilityConfigNetwork&quot;,
                  &quot;networkUrl&quot;: &quot;A String&quot;, # The fully qualified URL of the VPC network to bind to. This should be formatted like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}
                },
              ],
              &quot;kind&quot;: &quot;dns#managedZonePrivateVisibilityConfig&quot;,
            },
            &quot;creationTime&quot;: &quot;A String&quot;, # The time that this resource was created on the server. This is in RFC3339 text format. Output only.
            &quot;nameServers&quot;: [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
              &quot;A String&quot;,
            ],
            &quot;labels&quot;: { # User labels.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;forwardingConfig&quot;: { # The presence for this field indicates that outbound forwarding is enabled for this zone. The value of this field contains the set of destinations to forward to.
              &quot;kind&quot;: &quot;dns#managedZoneForwardingConfig&quot;,
              &quot;targetNameServers&quot;: [ # List of target name servers to forward to. Cloud DNS will select the best available name server if more than one target is given.
                {
                  &quot;forwardingPath&quot;: &quot;A String&quot;, # Forwarding path for this NameServerTarget. If unset or set to DEFAULT, Cloud DNS will make forwarding decision based on address ranges, i.e. RFC1918 addresses go to the VPC, non-RFC1918 addresses go to the Internet. When set to PRIVATE, Cloud DNS will always send queries through VPC for this target.
                  &quot;kind&quot;: &quot;dns#managedZoneForwardingConfigNameServerTarget&quot;,
                  &quot;ipv4Address&quot;: &quot;A String&quot;, # IPv4 address of a target name server.
                },
              ],
            },
            &quot;kind&quot;: &quot;dns#managedZone&quot;,
            &quot;name&quot;: &quot;A String&quot;, # 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.
            &quot;description&quot;: &quot;A String&quot;, # A mutable string of at most 1024 characters associated with this resource for the user&#x27;s convenience. Has no effect on the managed zone&#x27;s function.
            &quot;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (output only)
            &quot;peeringConfig&quot;: { # The presence of this field indicates that DNS Peering is enabled for this zone. The value of this field contains the network to peer with.
              &quot;kind&quot;: &quot;dns#managedZonePeeringConfig&quot;,
              &quot;targetNetwork&quot;: { # The network with which to peer.
                &quot;deactivateTime&quot;: &quot;A String&quot;, # The time at which the zone was deactivated, in RFC 3339 date-time format. An empty string indicates that the peering connection is active. The producer network can deactivate a zone. The zone is automatically deactivated if the producer network that the zone targeted is deleted. Output only.
                &quot;networkUrl&quot;: &quot;A String&quot;, # The fully qualified URL of the VPC network to forward queries to. This should be formatted like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}
                &quot;kind&quot;: &quot;dns#managedZonePeeringConfigTargetNetwork&quot;,
              },
            },
            &quot;nameServerSet&quot;: &quot;A String&quot;, # 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.
            &quot;dnsName&quot;: &quot;A String&quot;, # The DNS name of this managed zone, for instance &quot;example.com.&quot;.
            &quot;visibility&quot;: &quot;A String&quot;, # The zone&#x27;s visibility: public zones are exposed to the Internet, while private zones are visible only to Virtual Private Cloud resources.
            &quot;reverseLookupConfig&quot;: { # The presence of this field indicates that this is a managed reverse lookup zone and Cloud DNS will resolve reverse lookup queries using automatically configured records for VPC resources. This only applies to networks listed under private_visibility_config.
              &quot;kind&quot;: &quot;dns#managedZoneReverseLookupConfig&quot;,
            },
          },
          &quot;newValue&quot;: { # 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. # The post-operation ManagedZone resource.
            &quot;dnssecConfig&quot;: { # DNSSEC configuration.
              &quot;defaultKeySpecs&quot;: [ # Specifies parameters for generating initial DnsKeys for this ManagedZone. Can only be changed while the state is OFF.
                { # Parameters for DnsKey key generation. Used for generating initial keys for a new ManagedZone and as default when adding a new DnsKey.
                  &quot;keyType&quot;: &quot;A String&quot;, # Specifies whether this is a key signing key (KSK) or a zone signing key (ZSK). Key signing keys have the Secure Entry Point flag set and, when active, will only be used to sign resource record sets of type DNSKEY. Zone signing keys do not have the Secure Entry Point flag set and will be used to sign all other types of resource record sets.
                  &quot;kind&quot;: &quot;dns#dnsKeySpec&quot;,
                  &quot;algorithm&quot;: &quot;A String&quot;, # String mnemonic specifying the DNSSEC algorithm of this key.
                  &quot;keyLength&quot;: 42, # Length of the keys in bits.
                },
              ],
              &quot;state&quot;: &quot;A String&quot;, # Specifies whether DNSSEC is enabled, and what mode it is in.
              &quot;nonExistence&quot;: &quot;A String&quot;, # Specifies the mechanism for authenticated denial-of-existence responses. Can only be changed while the state is OFF.
              &quot;kind&quot;: &quot;dns#managedZoneDnsSecConfig&quot;,
            },
            &quot;privateVisibilityConfig&quot;: { # For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.
              &quot;networks&quot;: [ # The list of VPC networks that can see this zone.
                {
                  &quot;kind&quot;: &quot;dns#managedZonePrivateVisibilityConfigNetwork&quot;,
                  &quot;networkUrl&quot;: &quot;A String&quot;, # The fully qualified URL of the VPC network to bind to. This should be formatted like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}
                },
              ],
              &quot;kind&quot;: &quot;dns#managedZonePrivateVisibilityConfig&quot;,
            },
            &quot;creationTime&quot;: &quot;A String&quot;, # The time that this resource was created on the server. This is in RFC3339 text format. Output only.
            &quot;nameServers&quot;: [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
              &quot;A String&quot;,
            ],
            &quot;labels&quot;: { # User labels.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;forwardingConfig&quot;: { # The presence for this field indicates that outbound forwarding is enabled for this zone. The value of this field contains the set of destinations to forward to.
              &quot;kind&quot;: &quot;dns#managedZoneForwardingConfig&quot;,
              &quot;targetNameServers&quot;: [ # List of target name servers to forward to. Cloud DNS will select the best available name server if more than one target is given.
                {
                  &quot;forwardingPath&quot;: &quot;A String&quot;, # Forwarding path for this NameServerTarget. If unset or set to DEFAULT, Cloud DNS will make forwarding decision based on address ranges, i.e. RFC1918 addresses go to the VPC, non-RFC1918 addresses go to the Internet. When set to PRIVATE, Cloud DNS will always send queries through VPC for this target.
                  &quot;kind&quot;: &quot;dns#managedZoneForwardingConfigNameServerTarget&quot;,
                  &quot;ipv4Address&quot;: &quot;A String&quot;, # IPv4 address of a target name server.
                },
              ],
            },
            &quot;kind&quot;: &quot;dns#managedZone&quot;,
            &quot;name&quot;: &quot;A String&quot;, # 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.
            &quot;description&quot;: &quot;A String&quot;, # A mutable string of at most 1024 characters associated with this resource for the user&#x27;s convenience. Has no effect on the managed zone&#x27;s function.
            &quot;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (output only)
            &quot;peeringConfig&quot;: { # The presence of this field indicates that DNS Peering is enabled for this zone. The value of this field contains the network to peer with.
              &quot;kind&quot;: &quot;dns#managedZonePeeringConfig&quot;,
              &quot;targetNetwork&quot;: { # The network with which to peer.
                &quot;deactivateTime&quot;: &quot;A String&quot;, # The time at which the zone was deactivated, in RFC 3339 date-time format. An empty string indicates that the peering connection is active. The producer network can deactivate a zone. The zone is automatically deactivated if the producer network that the zone targeted is deleted. Output only.
                &quot;networkUrl&quot;: &quot;A String&quot;, # The fully qualified URL of the VPC network to forward queries to. This should be formatted like https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}
                &quot;kind&quot;: &quot;dns#managedZonePeeringConfigTargetNetwork&quot;,
              },
            },
            &quot;nameServerSet&quot;: &quot;A String&quot;, # 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.
            &quot;dnsName&quot;: &quot;A String&quot;, # The DNS name of this managed zone, for instance &quot;example.com.&quot;.
            &quot;visibility&quot;: &quot;A String&quot;, # The zone&#x27;s visibility: public zones are exposed to the Internet, while private zones are visible only to Virtual Private Cloud resources.
            &quot;reverseLookupConfig&quot;: { # The presence of this field indicates that this is a managed reverse lookup zone and Cloud DNS will resolve reverse lookup queries using automatically configured records for VPC resources. This only applies to networks listed under private_visibility_config.
              &quot;kind&quot;: &quot;dns#managedZoneReverseLookupConfig&quot;,
            },
          },
        },
      },
    ],
    &quot;kind&quot;: &quot;dns#managedZoneOperationsListResponse&quot;,
    &quot;header&quot;: { # Elements common to every response.
      &quot;operationId&quot;: &quot;A String&quot;, # 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).
    },
    &quot;nextPageToken&quot;: &quot;A String&quot;, # 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.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call &#x27;execute()&#x27; on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

</body></html>