<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, maxResults=None, sortBy=None, pageToken=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;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;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;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;dnsName&quot;: &quot;A String&quot;, # The DNS name of this managed zone, for instance &quot;example.com.&quot;.
        &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;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;kind&quot;: &quot;dns#managedZonePeeringConfigTargetNetwork&quot;,
            &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;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;labels&quot;: { # User labels.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
        &quot;kind&quot;: &quot;dns#managedZone&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;ipv4Address&quot;: &quot;A String&quot;, # IPv4 address of a target name server.
              &quot;kind&quot;: &quot;dns#managedZoneForwardingConfigNameServerTarget&quot;,
              &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;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;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;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (output only)
        &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;dnssecConfig&quot;: { # DNSSEC configuration.
          &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;state&quot;: &quot;A String&quot;, # Specifies whether DNSSEC is enabled, and what mode it is in.
          &quot;kind&quot;: &quot;dns#managedZoneDnsSecConfig&quot;,
          &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;kind&quot;: &quot;dns#dnsKeySpec&quot;,
              &quot;keyLength&quot;: 42, # Length of the keys in bits.
              &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;algorithm&quot;: &quot;A String&quot;, # String mnemonic specifying the DNSSEC algorithm of this key.
            },
          ],
        },
        &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;nameServers&quot;: [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
          &quot;A String&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;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#managedZonePrivateVisibilityConfigNetwork&quot;,
            },
          ],
          &quot;kind&quot;: &quot;dns#managedZonePrivateVisibilityConfig&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;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;dnsName&quot;: &quot;A String&quot;, # The DNS name of this managed zone, for instance &quot;example.com.&quot;.
        &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;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;kind&quot;: &quot;dns#managedZonePeeringConfigTargetNetwork&quot;,
            &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;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;labels&quot;: { # User labels.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
        &quot;kind&quot;: &quot;dns#managedZone&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;ipv4Address&quot;: &quot;A String&quot;, # IPv4 address of a target name server.
              &quot;kind&quot;: &quot;dns#managedZoneForwardingConfigNameServerTarget&quot;,
              &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;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;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;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (output only)
        &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;dnssecConfig&quot;: { # DNSSEC configuration.
          &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;state&quot;: &quot;A String&quot;, # Specifies whether DNSSEC is enabled, and what mode it is in.
          &quot;kind&quot;: &quot;dns#managedZoneDnsSecConfig&quot;,
          &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;kind&quot;: &quot;dns#dnsKeySpec&quot;,
              &quot;keyLength&quot;: 42, # Length of the keys in bits.
              &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;algorithm&quot;: &quot;A String&quot;, # String mnemonic specifying the DNSSEC algorithm of this key.
            },
          ],
        },
        &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;nameServers&quot;: [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
          &quot;A String&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;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#managedZonePrivateVisibilityConfigNetwork&quot;,
            },
          ],
          &quot;kind&quot;: &quot;dns#managedZonePrivateVisibilityConfig&quot;,
        },
      },
    },
    &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;kind&quot;: &quot;dns#operation&quot;,
    &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;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;kind&quot;: &quot;dns#dnsKey&quot;,
        &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;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;keyLength&quot;: 42, # Length of the key in bits. Specified at creation time then immutable.
        &quot;algorithm&quot;: &quot;A String&quot;, # String mnemonic specifying the DNSSEC algorithm of this key. Immutable after creation time.
        &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;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;digest&quot;: &quot;A String&quot;, # The base-16 encoded bytes of this digest. Suitable for use in a DS resource record.
            &quot;type&quot;: &quot;A String&quot;, # Specifies the algorithm used to calculate this digest.
          },
        ],
        &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;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (output only).
        &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;oldValue&quot;: { # A DNSSEC key pair. # The pre-operation DnsKey resource.
        &quot;kind&quot;: &quot;dns#dnsKey&quot;,
        &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;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;keyLength&quot;: 42, # Length of the key in bits. Specified at creation time then immutable.
        &quot;algorithm&quot;: &quot;A String&quot;, # String mnemonic specifying the DNSSEC algorithm of this key. Immutable after creation time.
        &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;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;digest&quot;: &quot;A String&quot;, # The base-16 encoded bytes of this digest. Suitable for use in a DS resource record.
            &quot;type&quot;: &quot;A String&quot;, # Specifies the algorithm used to calculate this digest.
          },
        ],
        &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;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (output only).
        &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;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)
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(project, managedZone, maxResults=None, sortBy=None, pageToken=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)
  maxResults: integer, Optional. Maximum number of results to be returned. If unspecified, the server will decide how many results to return.
  sortBy: string, Sorting criterion. The only supported values are START_TIME and ID.
    Allowed values
      startTime - 
      id - 
  pageToken: string, Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
    &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.
    &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;kind&quot;: &quot;dns#managedZoneOperationsListResponse&quot;,
    &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;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;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;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;dnsName&quot;: &quot;A String&quot;, # The DNS name of this managed zone, for instance &quot;example.com.&quot;.
            &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;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;kind&quot;: &quot;dns#managedZonePeeringConfigTargetNetwork&quot;,
                &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;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;labels&quot;: { # User labels.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;kind&quot;: &quot;dns#managedZone&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;ipv4Address&quot;: &quot;A String&quot;, # IPv4 address of a target name server.
                  &quot;kind&quot;: &quot;dns#managedZoneForwardingConfigNameServerTarget&quot;,
                  &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;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;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;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (output only)
            &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;dnssecConfig&quot;: { # DNSSEC configuration.
              &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;state&quot;: &quot;A String&quot;, # Specifies whether DNSSEC is enabled, and what mode it is in.
              &quot;kind&quot;: &quot;dns#managedZoneDnsSecConfig&quot;,
              &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;kind&quot;: &quot;dns#dnsKeySpec&quot;,
                  &quot;keyLength&quot;: 42, # Length of the keys in bits.
                  &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;algorithm&quot;: &quot;A String&quot;, # String mnemonic specifying the DNSSEC algorithm of this key.
                },
              ],
            },
            &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;nameServers&quot;: [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
              &quot;A String&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;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#managedZonePrivateVisibilityConfigNetwork&quot;,
                },
              ],
              &quot;kind&quot;: &quot;dns#managedZonePrivateVisibilityConfig&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;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;dnsName&quot;: &quot;A String&quot;, # The DNS name of this managed zone, for instance &quot;example.com.&quot;.
            &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;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;kind&quot;: &quot;dns#managedZonePeeringConfigTargetNetwork&quot;,
                &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;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;labels&quot;: { # User labels.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;kind&quot;: &quot;dns#managedZone&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;ipv4Address&quot;: &quot;A String&quot;, # IPv4 address of a target name server.
                  &quot;kind&quot;: &quot;dns#managedZoneForwardingConfigNameServerTarget&quot;,
                  &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;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;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;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (output only)
            &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;dnssecConfig&quot;: { # DNSSEC configuration.
              &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;state&quot;: &quot;A String&quot;, # Specifies whether DNSSEC is enabled, and what mode it is in.
              &quot;kind&quot;: &quot;dns#managedZoneDnsSecConfig&quot;,
              &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;kind&quot;: &quot;dns#dnsKeySpec&quot;,
                  &quot;keyLength&quot;: 42, # Length of the keys in bits.
                  &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;algorithm&quot;: &quot;A String&quot;, # String mnemonic specifying the DNSSEC algorithm of this key.
                },
              ],
            },
            &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;nameServers&quot;: [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
              &quot;A String&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;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#managedZonePrivateVisibilityConfigNetwork&quot;,
                },
              ],
              &quot;kind&quot;: &quot;dns#managedZonePrivateVisibilityConfig&quot;,
            },
          },
        },
        &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;kind&quot;: &quot;dns#operation&quot;,
        &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;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;kind&quot;: &quot;dns#dnsKey&quot;,
            &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;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;keyLength&quot;: 42, # Length of the key in bits. Specified at creation time then immutable.
            &quot;algorithm&quot;: &quot;A String&quot;, # String mnemonic specifying the DNSSEC algorithm of this key. Immutable after creation time.
            &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;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;digest&quot;: &quot;A String&quot;, # The base-16 encoded bytes of this digest. Suitable for use in a DS resource record.
                &quot;type&quot;: &quot;A String&quot;, # Specifies the algorithm used to calculate this digest.
              },
            ],
            &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;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (output only).
            &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;oldValue&quot;: { # A DNSSEC key pair. # The pre-operation DnsKey resource.
            &quot;kind&quot;: &quot;dns#dnsKey&quot;,
            &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;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;keyLength&quot;: 42, # Length of the key in bits. Specified at creation time then immutable.
            &quot;algorithm&quot;: &quot;A String&quot;, # String mnemonic specifying the DNSSEC algorithm of this key. Immutable after creation time.
            &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;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;digest&quot;: &quot;A String&quot;, # The base-16 encoded bytes of this digest. Suitable for use in a DS resource record.
                &quot;type&quot;: &quot;A String&quot;, # Specifies the algorithm used to calculate this digest.
              },
            ],
            &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;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (output only).
            &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;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)
      },
    ],
  }</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>