<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_v1beta2.html">Cloud DNS API</a> . <a href="dns_v1beta2.managedZones.html">managedZones</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="#create">create(project, body=None, clientOperationId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Create a new ManagedZone.</p>
<p class="toc_element">
  <code><a href="#delete">delete(project, managedZone, clientOperationId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Delete a previously created ManagedZone.</p>
<p class="toc_element">
  <code><a href="#get">get(project, managedZone, clientOperationId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Fetch the representation of an existing ManagedZone.</p>
<p class="toc_element">
  <code><a href="#list">list(project, dnsName=None, maxResults=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Enumerate ManagedZones that have been created but not yet deleted.</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>
<p class="toc_element">
  <code><a href="#patch">patch(project, managedZone, body=None, clientOperationId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Apply a partial update to an existing ManagedZone.</p>
<p class="toc_element">
  <code><a href="#update">update(project, managedZone, body=None, clientOperationId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Update an existing ManagedZone.</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="create">create(project, body=None, clientOperationId=None, x__xgafv=None)</code>
  <pre>Create a new ManagedZone.

Args:
  project: string, Identifies the project addressed by this request. (required)
  body: object, The request body.
    The object takes the form of:

{ # 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.
  &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;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;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;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;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;kind&quot;: &quot;dns#managedZoneDnsSecConfig&quot;,
    &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;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;ipv4Address&quot;: &quot;A String&quot;, # IPv4 address of a target name server.
        &quot;kind&quot;: &quot;dns#managedZoneForwardingConfigNameServerTarget&quot;,
      },
    ],
  },
  &quot;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (output only)
  &quot;kind&quot;: &quot;dns#managedZone&quot;,
  &quot;labels&quot;: { # User labels.
    &quot;a_key&quot;: &quot;A String&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;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;nameServers&quot;: [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
    &quot;A String&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;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;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;privateVisibilityConfig&quot;: { # For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.
    &quot;kind&quot;: &quot;dns#managedZonePrivateVisibilityConfig&quot;,
    &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;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;serviceDirectoryConfig&quot;: { # Contains information about Service Directory-backed zones. # This field links to the associated service directory namespace. This field should not be set for public zones or forwarding zones.
    &quot;kind&quot;: &quot;dns#managedZoneServiceDirectoryConfig&quot;,
    &quot;namespace&quot;: { # Contains information about the namespace associated with the zone.
      &quot;deletionTime&quot;: &quot;A String&quot;, # The time that the namespace backing this zone was deleted, empty string if it still exists. This is in RFC3339 text format. Output only.
      &quot;kind&quot;: &quot;dns#managedZoneServiceDirectoryConfigNamespace&quot;,
      &quot;namespaceUrl&quot;: &quot;A String&quot;, # The fully qualified URL of the namespace associated with the zone. This should be formatted like https://servicedirectory.googleapis.com/v1/projects/{project}/locations/{location}/namespaces/{namespace}
    },
  },
  &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.
}

  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:

    { # 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.
  &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;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;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;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;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;kind&quot;: &quot;dns#managedZoneDnsSecConfig&quot;,
    &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;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;ipv4Address&quot;: &quot;A String&quot;, # IPv4 address of a target name server.
        &quot;kind&quot;: &quot;dns#managedZoneForwardingConfigNameServerTarget&quot;,
      },
    ],
  },
  &quot;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (output only)
  &quot;kind&quot;: &quot;dns#managedZone&quot;,
  &quot;labels&quot;: { # User labels.
    &quot;a_key&quot;: &quot;A String&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;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;nameServers&quot;: [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
    &quot;A String&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;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;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;privateVisibilityConfig&quot;: { # For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.
    &quot;kind&quot;: &quot;dns#managedZonePrivateVisibilityConfig&quot;,
    &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;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;serviceDirectoryConfig&quot;: { # Contains information about Service Directory-backed zones. # This field links to the associated service directory namespace. This field should not be set for public zones or forwarding zones.
    &quot;kind&quot;: &quot;dns#managedZoneServiceDirectoryConfig&quot;,
    &quot;namespace&quot;: { # Contains information about the namespace associated with the zone.
      &quot;deletionTime&quot;: &quot;A String&quot;, # The time that the namespace backing this zone was deleted, empty string if it still exists. This is in RFC3339 text format. Output only.
      &quot;kind&quot;: &quot;dns#managedZoneServiceDirectoryConfigNamespace&quot;,
      &quot;namespaceUrl&quot;: &quot;A String&quot;, # The fully qualified URL of the namespace associated with the zone. This should be formatted like https://servicedirectory.googleapis.com/v1/projects/{project}/locations/{location}/namespaces/{namespace}
    },
  },
  &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.
}</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(project, managedZone, clientOperationId=None, x__xgafv=None)</code>
  <pre>Delete a previously created ManagedZone.

Args:
  project: string, Identifies the project addressed by this request. (required)
  managedZone: string, Identifies the managed zone addressed by this request. Can be the managed zone name or ID. (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
</pre>
</div>

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

Args:
  project: string, Identifies the project addressed by this request. (required)
  managedZone: string, Identifies the managed zone addressed by this request. Can be the managed zone name or ID. (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:

    { # 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.
  &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;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;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;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;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;kind&quot;: &quot;dns#managedZoneDnsSecConfig&quot;,
    &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;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;ipv4Address&quot;: &quot;A String&quot;, # IPv4 address of a target name server.
        &quot;kind&quot;: &quot;dns#managedZoneForwardingConfigNameServerTarget&quot;,
      },
    ],
  },
  &quot;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (output only)
  &quot;kind&quot;: &quot;dns#managedZone&quot;,
  &quot;labels&quot;: { # User labels.
    &quot;a_key&quot;: &quot;A String&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;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;nameServers&quot;: [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
    &quot;A String&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;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;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;privateVisibilityConfig&quot;: { # For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.
    &quot;kind&quot;: &quot;dns#managedZonePrivateVisibilityConfig&quot;,
    &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;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;serviceDirectoryConfig&quot;: { # Contains information about Service Directory-backed zones. # This field links to the associated service directory namespace. This field should not be set for public zones or forwarding zones.
    &quot;kind&quot;: &quot;dns#managedZoneServiceDirectoryConfig&quot;,
    &quot;namespace&quot;: { # Contains information about the namespace associated with the zone.
      &quot;deletionTime&quot;: &quot;A String&quot;, # The time that the namespace backing this zone was deleted, empty string if it still exists. This is in RFC3339 text format. Output only.
      &quot;kind&quot;: &quot;dns#managedZoneServiceDirectoryConfigNamespace&quot;,
      &quot;namespaceUrl&quot;: &quot;A String&quot;, # The fully qualified URL of the namespace associated with the zone. This should be formatted like https://servicedirectory.googleapis.com/v1/projects/{project}/locations/{location}/namespaces/{namespace}
    },
  },
  &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.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(project, dnsName=None, maxResults=None, pageToken=None, x__xgafv=None)</code>
  <pre>Enumerate ManagedZones that have been created but not yet deleted.

Args:
  project: string, Identifies the project addressed by this request. (required)
  dnsName: string, Restricts the list to return only zones with this domain name.
  maxResults: integer, Optional. Maximum number of results to be returned. If unspecified, the server will decide how many results to return.
  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;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#managedZonesListResponse&quot;, # Type of resource.
  &quot;managedZones&quot;: [ # The managed zone resources.
    { # 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.
      &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;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;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;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;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;kind&quot;: &quot;dns#managedZoneDnsSecConfig&quot;,
        &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;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;ipv4Address&quot;: &quot;A String&quot;, # IPv4 address of a target name server.
            &quot;kind&quot;: &quot;dns#managedZoneForwardingConfigNameServerTarget&quot;,
          },
        ],
      },
      &quot;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (output only)
      &quot;kind&quot;: &quot;dns#managedZone&quot;,
      &quot;labels&quot;: { # User labels.
        &quot;a_key&quot;: &quot;A String&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;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;nameServers&quot;: [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
        &quot;A String&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;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;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;privateVisibilityConfig&quot;: { # For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.
        &quot;kind&quot;: &quot;dns#managedZonePrivateVisibilityConfig&quot;,
        &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;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;serviceDirectoryConfig&quot;: { # Contains information about Service Directory-backed zones. # This field links to the associated service directory namespace. This field should not be set for public zones or forwarding zones.
        &quot;kind&quot;: &quot;dns#managedZoneServiceDirectoryConfig&quot;,
        &quot;namespace&quot;: { # Contains information about the namespace associated with the zone.
          &quot;deletionTime&quot;: &quot;A String&quot;, # The time that the namespace backing this zone was deleted, empty string if it still exists. This is in RFC3339 text format. Output only.
          &quot;kind&quot;: &quot;dns#managedZoneServiceDirectoryConfigNamespace&quot;,
          &quot;namespaceUrl&quot;: &quot;A String&quot;, # The fully qualified URL of the namespace associated with the zone. This should be formatted like https://servicedirectory.googleapis.com/v1/projects/{project}/locations/{location}/namespaces/{namespace}
        },
      },
      &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;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>

<div class="method">
    <code class="details" id="patch">patch(project, managedZone, body=None, clientOperationId=None, x__xgafv=None)</code>
  <pre>Apply a partial update to an existing ManagedZone.

Args:
  project: string, Identifies the project addressed by this request. (required)
  managedZone: string, Identifies the managed zone addressed by this request. Can be the managed zone name or ID. (required)
  body: object, The request body.
    The object takes the form of:

{ # 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.
  &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;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;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;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;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;kind&quot;: &quot;dns#managedZoneDnsSecConfig&quot;,
    &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;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;ipv4Address&quot;: &quot;A String&quot;, # IPv4 address of a target name server.
        &quot;kind&quot;: &quot;dns#managedZoneForwardingConfigNameServerTarget&quot;,
      },
    ],
  },
  &quot;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (output only)
  &quot;kind&quot;: &quot;dns#managedZone&quot;,
  &quot;labels&quot;: { # User labels.
    &quot;a_key&quot;: &quot;A String&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;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;nameServers&quot;: [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
    &quot;A String&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;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;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;privateVisibilityConfig&quot;: { # For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.
    &quot;kind&quot;: &quot;dns#managedZonePrivateVisibilityConfig&quot;,
    &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;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;serviceDirectoryConfig&quot;: { # Contains information about Service Directory-backed zones. # This field links to the associated service directory namespace. This field should not be set for public zones or forwarding zones.
    &quot;kind&quot;: &quot;dns#managedZoneServiceDirectoryConfig&quot;,
    &quot;namespace&quot;: { # Contains information about the namespace associated with the zone.
      &quot;deletionTime&quot;: &quot;A String&quot;, # The time that the namespace backing this zone was deleted, empty string if it still exists. This is in RFC3339 text format. Output only.
      &quot;kind&quot;: &quot;dns#managedZoneServiceDirectoryConfigNamespace&quot;,
      &quot;namespaceUrl&quot;: &quot;A String&quot;, # The fully qualified URL of the namespace associated with the zone. This should be formatted like https://servicedirectory.googleapis.com/v1/projects/{project}/locations/{location}/namespaces/{namespace}
    },
  },
  &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.
}

  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;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;algorithm&quot;: &quot;A String&quot;, # String mnemonic specifying the DNSSEC algorithm of this key. Immutable after creation time.
      &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;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;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;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (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;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;kind&quot;: &quot;dns#dnsKey&quot;,
      &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;algorithm&quot;: &quot;A String&quot;, # String mnemonic specifying the DNSSEC algorithm of this key. Immutable after creation time.
      &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;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;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;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (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;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;kind&quot;: &quot;dns#dnsKey&quot;,
      &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;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;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;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;zoneContext&quot;: { # Only populated if the operation targeted a ManagedZone (output only).
    &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;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;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;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;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;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;kind&quot;: &quot;dns#managedZoneDnsSecConfig&quot;,
        &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;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;ipv4Address&quot;: &quot;A String&quot;, # IPv4 address of a target name server.
            &quot;kind&quot;: &quot;dns#managedZoneForwardingConfigNameServerTarget&quot;,
          },
        ],
      },
      &quot;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (output only)
      &quot;kind&quot;: &quot;dns#managedZone&quot;,
      &quot;labels&quot;: { # User labels.
        &quot;a_key&quot;: &quot;A String&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;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;nameServers&quot;: [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
        &quot;A String&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;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;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;privateVisibilityConfig&quot;: { # For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.
        &quot;kind&quot;: &quot;dns#managedZonePrivateVisibilityConfig&quot;,
        &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;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;serviceDirectoryConfig&quot;: { # Contains information about Service Directory-backed zones. # This field links to the associated service directory namespace. This field should not be set for public zones or forwarding zones.
        &quot;kind&quot;: &quot;dns#managedZoneServiceDirectoryConfig&quot;,
        &quot;namespace&quot;: { # Contains information about the namespace associated with the zone.
          &quot;deletionTime&quot;: &quot;A String&quot;, # The time that the namespace backing this zone was deleted, empty string if it still exists. This is in RFC3339 text format. Output only.
          &quot;kind&quot;: &quot;dns#managedZoneServiceDirectoryConfigNamespace&quot;,
          &quot;namespaceUrl&quot;: &quot;A String&quot;, # The fully qualified URL of the namespace associated with the zone. This should be formatted like https://servicedirectory.googleapis.com/v1/projects/{project}/locations/{location}/namespaces/{namespace}
        },
      },
      &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;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;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;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;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;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;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;kind&quot;: &quot;dns#managedZoneDnsSecConfig&quot;,
        &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;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;ipv4Address&quot;: &quot;A String&quot;, # IPv4 address of a target name server.
            &quot;kind&quot;: &quot;dns#managedZoneForwardingConfigNameServerTarget&quot;,
          },
        ],
      },
      &quot;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (output only)
      &quot;kind&quot;: &quot;dns#managedZone&quot;,
      &quot;labels&quot;: { # User labels.
        &quot;a_key&quot;: &quot;A String&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;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;nameServers&quot;: [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
        &quot;A String&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;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;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;privateVisibilityConfig&quot;: { # For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.
        &quot;kind&quot;: &quot;dns#managedZonePrivateVisibilityConfig&quot;,
        &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;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;serviceDirectoryConfig&quot;: { # Contains information about Service Directory-backed zones. # This field links to the associated service directory namespace. This field should not be set for public zones or forwarding zones.
        &quot;kind&quot;: &quot;dns#managedZoneServiceDirectoryConfig&quot;,
        &quot;namespace&quot;: { # Contains information about the namespace associated with the zone.
          &quot;deletionTime&quot;: &quot;A String&quot;, # The time that the namespace backing this zone was deleted, empty string if it still exists. This is in RFC3339 text format. Output only.
          &quot;kind&quot;: &quot;dns#managedZoneServiceDirectoryConfigNamespace&quot;,
          &quot;namespaceUrl&quot;: &quot;A String&quot;, # The fully qualified URL of the namespace associated with the zone. This should be formatted like https://servicedirectory.googleapis.com/v1/projects/{project}/locations/{location}/namespaces/{namespace}
        },
      },
      &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.
    },
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="update">update(project, managedZone, body=None, clientOperationId=None, x__xgafv=None)</code>
  <pre>Update an existing ManagedZone.

Args:
  project: string, Identifies the project addressed by this request. (required)
  managedZone: string, Identifies the managed zone addressed by this request. Can be the managed zone name or ID. (required)
  body: object, The request body.
    The object takes the form of:

{ # 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.
  &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;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;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;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;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;kind&quot;: &quot;dns#managedZoneDnsSecConfig&quot;,
    &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;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;ipv4Address&quot;: &quot;A String&quot;, # IPv4 address of a target name server.
        &quot;kind&quot;: &quot;dns#managedZoneForwardingConfigNameServerTarget&quot;,
      },
    ],
  },
  &quot;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (output only)
  &quot;kind&quot;: &quot;dns#managedZone&quot;,
  &quot;labels&quot;: { # User labels.
    &quot;a_key&quot;: &quot;A String&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;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;nameServers&quot;: [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
    &quot;A String&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;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;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;privateVisibilityConfig&quot;: { # For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.
    &quot;kind&quot;: &quot;dns#managedZonePrivateVisibilityConfig&quot;,
    &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;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;serviceDirectoryConfig&quot;: { # Contains information about Service Directory-backed zones. # This field links to the associated service directory namespace. This field should not be set for public zones or forwarding zones.
    &quot;kind&quot;: &quot;dns#managedZoneServiceDirectoryConfig&quot;,
    &quot;namespace&quot;: { # Contains information about the namespace associated with the zone.
      &quot;deletionTime&quot;: &quot;A String&quot;, # The time that the namespace backing this zone was deleted, empty string if it still exists. This is in RFC3339 text format. Output only.
      &quot;kind&quot;: &quot;dns#managedZoneServiceDirectoryConfigNamespace&quot;,
      &quot;namespaceUrl&quot;: &quot;A String&quot;, # The fully qualified URL of the namespace associated with the zone. This should be formatted like https://servicedirectory.googleapis.com/v1/projects/{project}/locations/{location}/namespaces/{namespace}
    },
  },
  &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.
}

  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;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;algorithm&quot;: &quot;A String&quot;, # String mnemonic specifying the DNSSEC algorithm of this key. Immutable after creation time.
      &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;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;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;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (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;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;kind&quot;: &quot;dns#dnsKey&quot;,
      &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;algorithm&quot;: &quot;A String&quot;, # String mnemonic specifying the DNSSEC algorithm of this key. Immutable after creation time.
      &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;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;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;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (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;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;kind&quot;: &quot;dns#dnsKey&quot;,
      &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;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;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;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;zoneContext&quot;: { # Only populated if the operation targeted a ManagedZone (output only).
    &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;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;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;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;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;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;kind&quot;: &quot;dns#managedZoneDnsSecConfig&quot;,
        &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;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;ipv4Address&quot;: &quot;A String&quot;, # IPv4 address of a target name server.
            &quot;kind&quot;: &quot;dns#managedZoneForwardingConfigNameServerTarget&quot;,
          },
        ],
      },
      &quot;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (output only)
      &quot;kind&quot;: &quot;dns#managedZone&quot;,
      &quot;labels&quot;: { # User labels.
        &quot;a_key&quot;: &quot;A String&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;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;nameServers&quot;: [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
        &quot;A String&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;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;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;privateVisibilityConfig&quot;: { # For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.
        &quot;kind&quot;: &quot;dns#managedZonePrivateVisibilityConfig&quot;,
        &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;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;serviceDirectoryConfig&quot;: { # Contains information about Service Directory-backed zones. # This field links to the associated service directory namespace. This field should not be set for public zones or forwarding zones.
        &quot;kind&quot;: &quot;dns#managedZoneServiceDirectoryConfig&quot;,
        &quot;namespace&quot;: { # Contains information about the namespace associated with the zone.
          &quot;deletionTime&quot;: &quot;A String&quot;, # The time that the namespace backing this zone was deleted, empty string if it still exists. This is in RFC3339 text format. Output only.
          &quot;kind&quot;: &quot;dns#managedZoneServiceDirectoryConfigNamespace&quot;,
          &quot;namespaceUrl&quot;: &quot;A String&quot;, # The fully qualified URL of the namespace associated with the zone. This should be formatted like https://servicedirectory.googleapis.com/v1/projects/{project}/locations/{location}/namespaces/{namespace}
        },
      },
      &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;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;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;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;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;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;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;kind&quot;: &quot;dns#managedZoneDnsSecConfig&quot;,
        &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;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;ipv4Address&quot;: &quot;A String&quot;, # IPv4 address of a target name server.
            &quot;kind&quot;: &quot;dns#managedZoneForwardingConfigNameServerTarget&quot;,
          },
        ],
      },
      &quot;id&quot;: &quot;A String&quot;, # Unique identifier for the resource; defined by the server (output only)
      &quot;kind&quot;: &quot;dns#managedZone&quot;,
      &quot;labels&quot;: { # User labels.
        &quot;a_key&quot;: &quot;A String&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;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;nameServers&quot;: [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
        &quot;A String&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;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;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;privateVisibilityConfig&quot;: { # For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.
        &quot;kind&quot;: &quot;dns#managedZonePrivateVisibilityConfig&quot;,
        &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;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;serviceDirectoryConfig&quot;: { # Contains information about Service Directory-backed zones. # This field links to the associated service directory namespace. This field should not be set for public zones or forwarding zones.
        &quot;kind&quot;: &quot;dns#managedZoneServiceDirectoryConfig&quot;,
        &quot;namespace&quot;: { # Contains information about the namespace associated with the zone.
          &quot;deletionTime&quot;: &quot;A String&quot;, # The time that the namespace backing this zone was deleted, empty string if it still exists. This is in RFC3339 text format. Output only.
          &quot;kind&quot;: &quot;dns#managedZoneServiceDirectoryConfigNamespace&quot;,
          &quot;namespaceUrl&quot;: &quot;A String&quot;, # The fully qualified URL of the namespace associated with the zone. This should be formatted like https://servicedirectory.googleapis.com/v1/projects/{project}/locations/{location}/namespaces/{namespace}
        },
      },
      &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.
    },
  },
}</pre>
</div>

</body></html>