<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">Google Cloud DNS API</a> . <a href="dns_v1beta2.managedZones.html">managedZones</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#create">create(project, body, clientOperationId=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)</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)</a></code></p>
<p class="firstline">Fetch the representation of an existing ManagedZone.</p>
<p class="toc_element">
  <code><a href="#list">list(project, pageToken=None, maxResults=None, dnsName=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, clientOperationId=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, clientOperationId=None)</a></code></p>
<p class="firstline">Update an existing ManagedZone.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="create">create(project, body, clientOperationId=None)</code>
  <pre>Create a new ManagedZone.

Args:
  project: string, Identifies the project addressed by this request. (required)
  body: object, The request body. (required)
    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.
  "kind": "dns#managedZone", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZone".
  "labels": { # User labels.
    "a_key": "A String",
  },
  "description": "A String", # A mutable string of at most 1024 characters associated with this resource for the user's convenience. Has no effect on the managed zone's function.
  "nameServers": [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
    "A String",
  ],
  "forwardingConfig": { # 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.
    "kind": "dns#managedZoneForwardingConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneForwardingConfig".
    "targetNameServers": [ # List of target name servers to forward to. Cloud DNS will select the best available name server if more than one target is given.
      {
        "ipv4Address": "A String", # IPv4 address of a target name server.
        "kind": "dns#managedZoneForwardingConfigNameServerTarget", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneForwardingConfigNameServerTarget".
      },
    ],
  },
  "creationTime": "A String", # The time that this resource was created on the server. This is in RFC3339 text format. Output only.
  "visibility": "A String", # The zone's visibility: public zones are exposed to the Internet, while private zones are visible only to Virtual Private Cloud resources.
  "nameServerSet": "A String", # 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.
  "privateVisibilityConfig": { # For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.
    "kind": "dns#managedZonePrivateVisibilityConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePrivateVisibilityConfig".
    "networks": [ # The list of VPC networks that can see this zone.
      {
        "kind": "dns#managedZonePrivateVisibilityConfigNetwork", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePrivateVisibilityConfigNetwork".
        "networkUrl": "A String", # 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}
      },
    ],
  },
  "dnsName": "A String", # The DNS name of this managed zone, for instance "example.com.".
  "dnssecConfig": { # DNSSEC configuration.
    "kind": "dns#managedZoneDnsSecConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneDnsSecConfig".
    "defaultKeySpecs": [ # Specifies parameters that will be used for generating initial DnsKeys for this ManagedZone. Output only while state is not OFF.
      { # Parameters for DnsKey key generation. Used for generating initial keys for a new ManagedZone and as default when adding a new DnsKey.
        "keyType": "A String", # 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.
        "keyLength": 42, # Length of the keys in bits.
        "kind": "dns#dnsKeySpec", # Identifies what kind of resource this is. Value: the fixed string "dns#dnsKeySpec".
        "algorithm": "A String", # String mnemonic specifying the DNSSEC algorithm of this key.
      },
    ],
    "state": "A String", # Specifies whether DNSSEC is enabled, and what mode it is in.
    "nonExistence": "A String", # Specifies the mechanism used to provide authenticated denial-of-existence responses. Output only while state is not OFF.
  },
  "peeringConfig": { # 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.
    "kind": "dns#managedZonePeeringConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePeeringConfig".
    "targetNetwork": { # The network with which to peer.
      "kind": "dns#managedZonePeeringConfigTargetNetwork", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePeeringConfigTargetNetwork".
      "deactivateTime": "A String", # If this zone has been deactivated due to a problem with the network it targeted, the time at which it was deactivated. The zone can be deactivated if, for instance, the network it targeted was deleted. If the targeted network is still present, this will be the empty string. This is in RFC3339 text format. Output only.
      "networkUrl": "A String", # 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}
    },
  },
  "id": "A String", # Unique identifier for the resource; defined by the server (output only)
  "name": "A String", # 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.
}

  clientOperationId: string, For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.

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.
    "kind": "dns#managedZone", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZone".
    "labels": { # User labels.
      "a_key": "A String",
    },
    "description": "A String", # A mutable string of at most 1024 characters associated with this resource for the user's convenience. Has no effect on the managed zone's function.
    "nameServers": [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
      "A String",
    ],
    "forwardingConfig": { # 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.
      "kind": "dns#managedZoneForwardingConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneForwardingConfig".
      "targetNameServers": [ # List of target name servers to forward to. Cloud DNS will select the best available name server if more than one target is given.
        {
          "ipv4Address": "A String", # IPv4 address of a target name server.
          "kind": "dns#managedZoneForwardingConfigNameServerTarget", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneForwardingConfigNameServerTarget".
        },
      ],
    },
    "creationTime": "A String", # The time that this resource was created on the server. This is in RFC3339 text format. Output only.
    "visibility": "A String", # The zone's visibility: public zones are exposed to the Internet, while private zones are visible only to Virtual Private Cloud resources.
    "nameServerSet": "A String", # 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.
    "privateVisibilityConfig": { # For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.
      "kind": "dns#managedZonePrivateVisibilityConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePrivateVisibilityConfig".
      "networks": [ # The list of VPC networks that can see this zone.
        {
          "kind": "dns#managedZonePrivateVisibilityConfigNetwork", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePrivateVisibilityConfigNetwork".
          "networkUrl": "A String", # 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}
        },
      ],
    },
    "dnsName": "A String", # The DNS name of this managed zone, for instance "example.com.".
    "dnssecConfig": { # DNSSEC configuration.
      "kind": "dns#managedZoneDnsSecConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneDnsSecConfig".
      "defaultKeySpecs": [ # Specifies parameters that will be used for generating initial DnsKeys for this ManagedZone. Output only while state is not OFF.
        { # Parameters for DnsKey key generation. Used for generating initial keys for a new ManagedZone and as default when adding a new DnsKey.
          "keyType": "A String", # 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.
          "keyLength": 42, # Length of the keys in bits.
          "kind": "dns#dnsKeySpec", # Identifies what kind of resource this is. Value: the fixed string "dns#dnsKeySpec".
          "algorithm": "A String", # String mnemonic specifying the DNSSEC algorithm of this key.
        },
      ],
      "state": "A String", # Specifies whether DNSSEC is enabled, and what mode it is in.
      "nonExistence": "A String", # Specifies the mechanism used to provide authenticated denial-of-existence responses. Output only while state is not OFF.
    },
    "peeringConfig": { # 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.
      "kind": "dns#managedZonePeeringConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePeeringConfig".
      "targetNetwork": { # The network with which to peer.
        "kind": "dns#managedZonePeeringConfigTargetNetwork", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePeeringConfigTargetNetwork".
        "deactivateTime": "A String", # If this zone has been deactivated due to a problem with the network it targeted, the time at which it was deactivated. The zone can be deactivated if, for instance, the network it targeted was deleted. If the targeted network is still present, this will be the empty string. This is in RFC3339 text format. Output only.
        "networkUrl": "A String", # 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}
      },
    },
    "id": "A String", # Unique identifier for the resource; defined by the server (output only)
    "name": "A String", # 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.
  }</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(project, managedZone, clientOperationId=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.
</pre>
</div>

<div class="method">
    <code class="details" id="get">get(project, managedZone, clientOperationId=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.

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.
    "kind": "dns#managedZone", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZone".
    "labels": { # User labels.
      "a_key": "A String",
    },
    "description": "A String", # A mutable string of at most 1024 characters associated with this resource for the user's convenience. Has no effect on the managed zone's function.
    "nameServers": [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
      "A String",
    ],
    "forwardingConfig": { # 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.
      "kind": "dns#managedZoneForwardingConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneForwardingConfig".
      "targetNameServers": [ # List of target name servers to forward to. Cloud DNS will select the best available name server if more than one target is given.
        {
          "ipv4Address": "A String", # IPv4 address of a target name server.
          "kind": "dns#managedZoneForwardingConfigNameServerTarget", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneForwardingConfigNameServerTarget".
        },
      ],
    },
    "creationTime": "A String", # The time that this resource was created on the server. This is in RFC3339 text format. Output only.
    "visibility": "A String", # The zone's visibility: public zones are exposed to the Internet, while private zones are visible only to Virtual Private Cloud resources.
    "nameServerSet": "A String", # 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.
    "privateVisibilityConfig": { # For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.
      "kind": "dns#managedZonePrivateVisibilityConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePrivateVisibilityConfig".
      "networks": [ # The list of VPC networks that can see this zone.
        {
          "kind": "dns#managedZonePrivateVisibilityConfigNetwork", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePrivateVisibilityConfigNetwork".
          "networkUrl": "A String", # 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}
        },
      ],
    },
    "dnsName": "A String", # The DNS name of this managed zone, for instance "example.com.".
    "dnssecConfig": { # DNSSEC configuration.
      "kind": "dns#managedZoneDnsSecConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneDnsSecConfig".
      "defaultKeySpecs": [ # Specifies parameters that will be used for generating initial DnsKeys for this ManagedZone. Output only while state is not OFF.
        { # Parameters for DnsKey key generation. Used for generating initial keys for a new ManagedZone and as default when adding a new DnsKey.
          "keyType": "A String", # 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.
          "keyLength": 42, # Length of the keys in bits.
          "kind": "dns#dnsKeySpec", # Identifies what kind of resource this is. Value: the fixed string "dns#dnsKeySpec".
          "algorithm": "A String", # String mnemonic specifying the DNSSEC algorithm of this key.
        },
      ],
      "state": "A String", # Specifies whether DNSSEC is enabled, and what mode it is in.
      "nonExistence": "A String", # Specifies the mechanism used to provide authenticated denial-of-existence responses. Output only while state is not OFF.
    },
    "peeringConfig": { # 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.
      "kind": "dns#managedZonePeeringConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePeeringConfig".
      "targetNetwork": { # The network with which to peer.
        "kind": "dns#managedZonePeeringConfigTargetNetwork", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePeeringConfigTargetNetwork".
        "deactivateTime": "A String", # If this zone has been deactivated due to a problem with the network it targeted, the time at which it was deactivated. The zone can be deactivated if, for instance, the network it targeted was deleted. If the targeted network is still present, this will be the empty string. This is in RFC3339 text format. Output only.
        "networkUrl": "A String", # 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}
      },
    },
    "id": "A String", # Unique identifier for the resource; defined by the server (output only)
    "name": "A String", # 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.
  }</pre>
</div>

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

Args:
  project: string, Identifies the project addressed by this request. (required)
  pageToken: string, Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.
  maxResults: integer, Optional. Maximum number of results to be returned. If unspecified, the server will decide how many results to return.
  dnsName: string, Restricts the list to return only zones with this domain name.

Returns:
  An object of the form:

    {
    "nextPageToken": "A String", # 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.
    "header": { # Elements common to every response.
      "operationId": "A String", # 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).
    },
    "kind": "dns#managedZonesListResponse", # Type of resource.
    "managedZones": [ # 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.
        "kind": "dns#managedZone", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZone".
        "labels": { # User labels.
          "a_key": "A String",
        },
        "description": "A String", # A mutable string of at most 1024 characters associated with this resource for the user's convenience. Has no effect on the managed zone's function.
        "nameServers": [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
          "A String",
        ],
        "forwardingConfig": { # 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.
          "kind": "dns#managedZoneForwardingConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneForwardingConfig".
          "targetNameServers": [ # List of target name servers to forward to. Cloud DNS will select the best available name server if more than one target is given.
            {
              "ipv4Address": "A String", # IPv4 address of a target name server.
              "kind": "dns#managedZoneForwardingConfigNameServerTarget", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneForwardingConfigNameServerTarget".
            },
          ],
        },
        "creationTime": "A String", # The time that this resource was created on the server. This is in RFC3339 text format. Output only.
        "visibility": "A String", # The zone's visibility: public zones are exposed to the Internet, while private zones are visible only to Virtual Private Cloud resources.
        "nameServerSet": "A String", # 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.
        "privateVisibilityConfig": { # For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.
          "kind": "dns#managedZonePrivateVisibilityConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePrivateVisibilityConfig".
          "networks": [ # The list of VPC networks that can see this zone.
            {
              "kind": "dns#managedZonePrivateVisibilityConfigNetwork", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePrivateVisibilityConfigNetwork".
              "networkUrl": "A String", # 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}
            },
          ],
        },
        "dnsName": "A String", # The DNS name of this managed zone, for instance "example.com.".
        "dnssecConfig": { # DNSSEC configuration.
          "kind": "dns#managedZoneDnsSecConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneDnsSecConfig".
          "defaultKeySpecs": [ # Specifies parameters that will be used for generating initial DnsKeys for this ManagedZone. Output only while state is not OFF.
            { # Parameters for DnsKey key generation. Used for generating initial keys for a new ManagedZone and as default when adding a new DnsKey.
              "keyType": "A String", # 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.
              "keyLength": 42, # Length of the keys in bits.
              "kind": "dns#dnsKeySpec", # Identifies what kind of resource this is. Value: the fixed string "dns#dnsKeySpec".
              "algorithm": "A String", # String mnemonic specifying the DNSSEC algorithm of this key.
            },
          ],
          "state": "A String", # Specifies whether DNSSEC is enabled, and what mode it is in.
          "nonExistence": "A String", # Specifies the mechanism used to provide authenticated denial-of-existence responses. Output only while state is not OFF.
        },
        "peeringConfig": { # 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.
          "kind": "dns#managedZonePeeringConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePeeringConfig".
          "targetNetwork": { # The network with which to peer.
            "kind": "dns#managedZonePeeringConfigTargetNetwork", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePeeringConfigTargetNetwork".
            "deactivateTime": "A String", # If this zone has been deactivated due to a problem with the network it targeted, the time at which it was deactivated. The zone can be deactivated if, for instance, the network it targeted was deleted. If the targeted network is still present, this will be the empty string. This is in RFC3339 text format. Output only.
            "networkUrl": "A String", # 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}
          },
        },
        "id": "A String", # Unique identifier for the resource; defined by the server (output only)
        "name": "A String", # 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.
      },
    ],
  }</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 'execute()' 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, clientOperationId=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. (required)
    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.
  "kind": "dns#managedZone", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZone".
  "labels": { # User labels.
    "a_key": "A String",
  },
  "description": "A String", # A mutable string of at most 1024 characters associated with this resource for the user's convenience. Has no effect on the managed zone's function.
  "nameServers": [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
    "A String",
  ],
  "forwardingConfig": { # 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.
    "kind": "dns#managedZoneForwardingConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneForwardingConfig".
    "targetNameServers": [ # List of target name servers to forward to. Cloud DNS will select the best available name server if more than one target is given.
      {
        "ipv4Address": "A String", # IPv4 address of a target name server.
        "kind": "dns#managedZoneForwardingConfigNameServerTarget", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneForwardingConfigNameServerTarget".
      },
    ],
  },
  "creationTime": "A String", # The time that this resource was created on the server. This is in RFC3339 text format. Output only.
  "visibility": "A String", # The zone's visibility: public zones are exposed to the Internet, while private zones are visible only to Virtual Private Cloud resources.
  "nameServerSet": "A String", # 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.
  "privateVisibilityConfig": { # For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.
    "kind": "dns#managedZonePrivateVisibilityConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePrivateVisibilityConfig".
    "networks": [ # The list of VPC networks that can see this zone.
      {
        "kind": "dns#managedZonePrivateVisibilityConfigNetwork", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePrivateVisibilityConfigNetwork".
        "networkUrl": "A String", # 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}
      },
    ],
  },
  "dnsName": "A String", # The DNS name of this managed zone, for instance "example.com.".
  "dnssecConfig": { # DNSSEC configuration.
    "kind": "dns#managedZoneDnsSecConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneDnsSecConfig".
    "defaultKeySpecs": [ # Specifies parameters that will be used for generating initial DnsKeys for this ManagedZone. Output only while state is not OFF.
      { # Parameters for DnsKey key generation. Used for generating initial keys for a new ManagedZone and as default when adding a new DnsKey.
        "keyType": "A String", # 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.
        "keyLength": 42, # Length of the keys in bits.
        "kind": "dns#dnsKeySpec", # Identifies what kind of resource this is. Value: the fixed string "dns#dnsKeySpec".
        "algorithm": "A String", # String mnemonic specifying the DNSSEC algorithm of this key.
      },
    ],
    "state": "A String", # Specifies whether DNSSEC is enabled, and what mode it is in.
    "nonExistence": "A String", # Specifies the mechanism used to provide authenticated denial-of-existence responses. Output only while state is not OFF.
  },
  "peeringConfig": { # 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.
    "kind": "dns#managedZonePeeringConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePeeringConfig".
    "targetNetwork": { # The network with which to peer.
      "kind": "dns#managedZonePeeringConfigTargetNetwork", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePeeringConfigTargetNetwork".
      "deactivateTime": "A String", # If this zone has been deactivated due to a problem with the network it targeted, the time at which it was deactivated. The zone can be deactivated if, for instance, the network it targeted was deleted. If the targeted network is still present, this will be the empty string. This is in RFC3339 text format. Output only.
      "networkUrl": "A String", # 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}
    },
  },
  "id": "A String", # Unique identifier for the resource; defined by the server (output only)
  "name": "A String", # 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.
}

  clientOperationId: string, For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.

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.
    "status": "A String", # Status of the operation. Can be one of the following: "PENDING" or "DONE" (output only). A status of "DONE" means that the request to update the authoritative servers has been sent, but the servers might not be updated yet.
    "kind": "dns#operation", # Identifies what kind of resource this is. Value: the fixed string "dns#operation".
    "dnsKeyContext": { # Only populated if the operation targeted a DnsKey (output only).
      "newValue": { # A DNSSEC key pair. # The post-operation DnsKey resource.
        "keyTag": 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'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.
        "kind": "dns#dnsKey", # Identifies what kind of resource this is. Value: the fixed string "dns#dnsKey".
        "description": "A String", # A mutable string of at most 1024 characters associated with this resource for the user's convenience. Has no effect on the resource's function.
        "algorithm": "A String", # String mnemonic specifying the DNSSEC algorithm of this key. Immutable after creation time.
        "keyLength": 42, # Length of the key in bits. Specified at creation time then immutable.
        "creationTime": "A String", # The time that this resource was created in the control plane. This is in RFC3339 text format. Output only.
        "publicKey": "A String", # Base64 encoded public half of this key. Output only.
        "type": "A String", # One of "KEY_SIGNING" or "ZONE_SIGNING". Keys of type KEY_SIGNING have the Secure Entry Point flag set and, when active, will be used to sign only resource record sets of type DNSKEY. Otherwise, the Secure Entry Point flag will be cleared and this key will be used to sign only resource record sets of other types. Immutable after creation time.
        "digests": [ # 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.
          {
            "type": "A String", # Specifies the algorithm used to calculate this digest.
            "digest": "A String", # The base-16 encoded bytes of this digest. Suitable for use in a DS resource record.
          },
        ],
        "id": "A String", # Unique identifier for the resource; defined by the server (output only).
        "isActive": 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.
      },
      "oldValue": { # A DNSSEC key pair. # The pre-operation DnsKey resource.
        "keyTag": 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'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.
        "kind": "dns#dnsKey", # Identifies what kind of resource this is. Value: the fixed string "dns#dnsKey".
        "description": "A String", # A mutable string of at most 1024 characters associated with this resource for the user's convenience. Has no effect on the resource's function.
        "algorithm": "A String", # String mnemonic specifying the DNSSEC algorithm of this key. Immutable after creation time.
        "keyLength": 42, # Length of the key in bits. Specified at creation time then immutable.
        "creationTime": "A String", # The time that this resource was created in the control plane. This is in RFC3339 text format. Output only.
        "publicKey": "A String", # Base64 encoded public half of this key. Output only.
        "type": "A String", # One of "KEY_SIGNING" or "ZONE_SIGNING". Keys of type KEY_SIGNING have the Secure Entry Point flag set and, when active, will be used to sign only resource record sets of type DNSKEY. Otherwise, the Secure Entry Point flag will be cleared and this key will be used to sign only resource record sets of other types. Immutable after creation time.
        "digests": [ # 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.
          {
            "type": "A String", # Specifies the algorithm used to calculate this digest.
            "digest": "A String", # The base-16 encoded bytes of this digest. Suitable for use in a DS resource record.
          },
        ],
        "id": "A String", # Unique identifier for the resource; defined by the server (output only).
        "isActive": 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.
      },
    },
    "zoneContext": { # Only populated if the operation targeted a ManagedZone (output only).
      "newValue": { # 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.
        "kind": "dns#managedZone", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZone".
        "labels": { # User labels.
          "a_key": "A String",
        },
        "description": "A String", # A mutable string of at most 1024 characters associated with this resource for the user's convenience. Has no effect on the managed zone's function.
        "nameServers": [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
          "A String",
        ],
        "forwardingConfig": { # 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.
          "kind": "dns#managedZoneForwardingConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneForwardingConfig".
          "targetNameServers": [ # List of target name servers to forward to. Cloud DNS will select the best available name server if more than one target is given.
            {
              "ipv4Address": "A String", # IPv4 address of a target name server.
              "kind": "dns#managedZoneForwardingConfigNameServerTarget", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneForwardingConfigNameServerTarget".
            },
          ],
        },
        "creationTime": "A String", # The time that this resource was created on the server. This is in RFC3339 text format. Output only.
        "visibility": "A String", # The zone's visibility: public zones are exposed to the Internet, while private zones are visible only to Virtual Private Cloud resources.
        "nameServerSet": "A String", # 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.
        "privateVisibilityConfig": { # For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.
          "kind": "dns#managedZonePrivateVisibilityConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePrivateVisibilityConfig".
          "networks": [ # The list of VPC networks that can see this zone.
            {
              "kind": "dns#managedZonePrivateVisibilityConfigNetwork", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePrivateVisibilityConfigNetwork".
              "networkUrl": "A String", # 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}
            },
          ],
        },
        "dnsName": "A String", # The DNS name of this managed zone, for instance "example.com.".
        "dnssecConfig": { # DNSSEC configuration.
          "kind": "dns#managedZoneDnsSecConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneDnsSecConfig".
          "defaultKeySpecs": [ # Specifies parameters that will be used for generating initial DnsKeys for this ManagedZone. Output only while state is not OFF.
            { # Parameters for DnsKey key generation. Used for generating initial keys for a new ManagedZone and as default when adding a new DnsKey.
              "keyType": "A String", # 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.
              "keyLength": 42, # Length of the keys in bits.
              "kind": "dns#dnsKeySpec", # Identifies what kind of resource this is. Value: the fixed string "dns#dnsKeySpec".
              "algorithm": "A String", # String mnemonic specifying the DNSSEC algorithm of this key.
            },
          ],
          "state": "A String", # Specifies whether DNSSEC is enabled, and what mode it is in.
          "nonExistence": "A String", # Specifies the mechanism used to provide authenticated denial-of-existence responses. Output only while state is not OFF.
        },
        "peeringConfig": { # 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.
          "kind": "dns#managedZonePeeringConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePeeringConfig".
          "targetNetwork": { # The network with which to peer.
            "kind": "dns#managedZonePeeringConfigTargetNetwork", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePeeringConfigTargetNetwork".
            "deactivateTime": "A String", # If this zone has been deactivated due to a problem with the network it targeted, the time at which it was deactivated. The zone can be deactivated if, for instance, the network it targeted was deleted. If the targeted network is still present, this will be the empty string. This is in RFC3339 text format. Output only.
            "networkUrl": "A String", # 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}
          },
        },
        "id": "A String", # Unique identifier for the resource; defined by the server (output only)
        "name": "A String", # 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.
      },
      "oldValue": { # 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.
        "kind": "dns#managedZone", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZone".
        "labels": { # User labels.
          "a_key": "A String",
        },
        "description": "A String", # A mutable string of at most 1024 characters associated with this resource for the user's convenience. Has no effect on the managed zone's function.
        "nameServers": [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
          "A String",
        ],
        "forwardingConfig": { # 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.
          "kind": "dns#managedZoneForwardingConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneForwardingConfig".
          "targetNameServers": [ # List of target name servers to forward to. Cloud DNS will select the best available name server if more than one target is given.
            {
              "ipv4Address": "A String", # IPv4 address of a target name server.
              "kind": "dns#managedZoneForwardingConfigNameServerTarget", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneForwardingConfigNameServerTarget".
            },
          ],
        },
        "creationTime": "A String", # The time that this resource was created on the server. This is in RFC3339 text format. Output only.
        "visibility": "A String", # The zone's visibility: public zones are exposed to the Internet, while private zones are visible only to Virtual Private Cloud resources.
        "nameServerSet": "A String", # 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.
        "privateVisibilityConfig": { # For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.
          "kind": "dns#managedZonePrivateVisibilityConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePrivateVisibilityConfig".
          "networks": [ # The list of VPC networks that can see this zone.
            {
              "kind": "dns#managedZonePrivateVisibilityConfigNetwork", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePrivateVisibilityConfigNetwork".
              "networkUrl": "A String", # 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}
            },
          ],
        },
        "dnsName": "A String", # The DNS name of this managed zone, for instance "example.com.".
        "dnssecConfig": { # DNSSEC configuration.
          "kind": "dns#managedZoneDnsSecConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneDnsSecConfig".
          "defaultKeySpecs": [ # Specifies parameters that will be used for generating initial DnsKeys for this ManagedZone. Output only while state is not OFF.
            { # Parameters for DnsKey key generation. Used for generating initial keys for a new ManagedZone and as default when adding a new DnsKey.
              "keyType": "A String", # 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.
              "keyLength": 42, # Length of the keys in bits.
              "kind": "dns#dnsKeySpec", # Identifies what kind of resource this is. Value: the fixed string "dns#dnsKeySpec".
              "algorithm": "A String", # String mnemonic specifying the DNSSEC algorithm of this key.
            },
          ],
          "state": "A String", # Specifies whether DNSSEC is enabled, and what mode it is in.
          "nonExistence": "A String", # Specifies the mechanism used to provide authenticated denial-of-existence responses. Output only while state is not OFF.
        },
        "peeringConfig": { # 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.
          "kind": "dns#managedZonePeeringConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePeeringConfig".
          "targetNetwork": { # The network with which to peer.
            "kind": "dns#managedZonePeeringConfigTargetNetwork", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePeeringConfigTargetNetwork".
            "deactivateTime": "A String", # If this zone has been deactivated due to a problem with the network it targeted, the time at which it was deactivated. The zone can be deactivated if, for instance, the network it targeted was deleted. If the targeted network is still present, this will be the empty string. This is in RFC3339 text format. Output only.
            "networkUrl": "A String", # 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}
          },
        },
        "id": "A String", # Unique identifier for the resource; defined by the server (output only)
        "name": "A String", # 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.
      },
    },
    "user": "A String", # User who requested the operation, for example: user@example.com. cloud-dns-system for operations automatically done by the system. (output only)
    "startTime": "A String", # The time that this operation was started by the server. This is in RFC3339 text format (output only).
    "type": "A String", # Type of the operation. Operations include insert, update, and delete (output only).
    "id": "A String", # 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)
  }</pre>
</div>

<div class="method">
    <code class="details" id="update">update(project, managedZone, body, clientOperationId=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. (required)
    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.
  "kind": "dns#managedZone", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZone".
  "labels": { # User labels.
    "a_key": "A String",
  },
  "description": "A String", # A mutable string of at most 1024 characters associated with this resource for the user's convenience. Has no effect on the managed zone's function.
  "nameServers": [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
    "A String",
  ],
  "forwardingConfig": { # 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.
    "kind": "dns#managedZoneForwardingConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneForwardingConfig".
    "targetNameServers": [ # List of target name servers to forward to. Cloud DNS will select the best available name server if more than one target is given.
      {
        "ipv4Address": "A String", # IPv4 address of a target name server.
        "kind": "dns#managedZoneForwardingConfigNameServerTarget", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneForwardingConfigNameServerTarget".
      },
    ],
  },
  "creationTime": "A String", # The time that this resource was created on the server. This is in RFC3339 text format. Output only.
  "visibility": "A String", # The zone's visibility: public zones are exposed to the Internet, while private zones are visible only to Virtual Private Cloud resources.
  "nameServerSet": "A String", # 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.
  "privateVisibilityConfig": { # For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.
    "kind": "dns#managedZonePrivateVisibilityConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePrivateVisibilityConfig".
    "networks": [ # The list of VPC networks that can see this zone.
      {
        "kind": "dns#managedZonePrivateVisibilityConfigNetwork", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePrivateVisibilityConfigNetwork".
        "networkUrl": "A String", # 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}
      },
    ],
  },
  "dnsName": "A String", # The DNS name of this managed zone, for instance "example.com.".
  "dnssecConfig": { # DNSSEC configuration.
    "kind": "dns#managedZoneDnsSecConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneDnsSecConfig".
    "defaultKeySpecs": [ # Specifies parameters that will be used for generating initial DnsKeys for this ManagedZone. Output only while state is not OFF.
      { # Parameters for DnsKey key generation. Used for generating initial keys for a new ManagedZone and as default when adding a new DnsKey.
        "keyType": "A String", # 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.
        "keyLength": 42, # Length of the keys in bits.
        "kind": "dns#dnsKeySpec", # Identifies what kind of resource this is. Value: the fixed string "dns#dnsKeySpec".
        "algorithm": "A String", # String mnemonic specifying the DNSSEC algorithm of this key.
      },
    ],
    "state": "A String", # Specifies whether DNSSEC is enabled, and what mode it is in.
    "nonExistence": "A String", # Specifies the mechanism used to provide authenticated denial-of-existence responses. Output only while state is not OFF.
  },
  "peeringConfig": { # 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.
    "kind": "dns#managedZonePeeringConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePeeringConfig".
    "targetNetwork": { # The network with which to peer.
      "kind": "dns#managedZonePeeringConfigTargetNetwork", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePeeringConfigTargetNetwork".
      "deactivateTime": "A String", # If this zone has been deactivated due to a problem with the network it targeted, the time at which it was deactivated. The zone can be deactivated if, for instance, the network it targeted was deleted. If the targeted network is still present, this will be the empty string. This is in RFC3339 text format. Output only.
      "networkUrl": "A String", # 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}
    },
  },
  "id": "A String", # Unique identifier for the resource; defined by the server (output only)
  "name": "A String", # 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.
}

  clientOperationId: string, For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.

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.
    "status": "A String", # Status of the operation. Can be one of the following: "PENDING" or "DONE" (output only). A status of "DONE" means that the request to update the authoritative servers has been sent, but the servers might not be updated yet.
    "kind": "dns#operation", # Identifies what kind of resource this is. Value: the fixed string "dns#operation".
    "dnsKeyContext": { # Only populated if the operation targeted a DnsKey (output only).
      "newValue": { # A DNSSEC key pair. # The post-operation DnsKey resource.
        "keyTag": 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'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.
        "kind": "dns#dnsKey", # Identifies what kind of resource this is. Value: the fixed string "dns#dnsKey".
        "description": "A String", # A mutable string of at most 1024 characters associated with this resource for the user's convenience. Has no effect on the resource's function.
        "algorithm": "A String", # String mnemonic specifying the DNSSEC algorithm of this key. Immutable after creation time.
        "keyLength": 42, # Length of the key in bits. Specified at creation time then immutable.
        "creationTime": "A String", # The time that this resource was created in the control plane. This is in RFC3339 text format. Output only.
        "publicKey": "A String", # Base64 encoded public half of this key. Output only.
        "type": "A String", # One of "KEY_SIGNING" or "ZONE_SIGNING". Keys of type KEY_SIGNING have the Secure Entry Point flag set and, when active, will be used to sign only resource record sets of type DNSKEY. Otherwise, the Secure Entry Point flag will be cleared and this key will be used to sign only resource record sets of other types. Immutable after creation time.
        "digests": [ # 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.
          {
            "type": "A String", # Specifies the algorithm used to calculate this digest.
            "digest": "A String", # The base-16 encoded bytes of this digest. Suitable for use in a DS resource record.
          },
        ],
        "id": "A String", # Unique identifier for the resource; defined by the server (output only).
        "isActive": 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.
      },
      "oldValue": { # A DNSSEC key pair. # The pre-operation DnsKey resource.
        "keyTag": 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'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.
        "kind": "dns#dnsKey", # Identifies what kind of resource this is. Value: the fixed string "dns#dnsKey".
        "description": "A String", # A mutable string of at most 1024 characters associated with this resource for the user's convenience. Has no effect on the resource's function.
        "algorithm": "A String", # String mnemonic specifying the DNSSEC algorithm of this key. Immutable after creation time.
        "keyLength": 42, # Length of the key in bits. Specified at creation time then immutable.
        "creationTime": "A String", # The time that this resource was created in the control plane. This is in RFC3339 text format. Output only.
        "publicKey": "A String", # Base64 encoded public half of this key. Output only.
        "type": "A String", # One of "KEY_SIGNING" or "ZONE_SIGNING". Keys of type KEY_SIGNING have the Secure Entry Point flag set and, when active, will be used to sign only resource record sets of type DNSKEY. Otherwise, the Secure Entry Point flag will be cleared and this key will be used to sign only resource record sets of other types. Immutable after creation time.
        "digests": [ # 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.
          {
            "type": "A String", # Specifies the algorithm used to calculate this digest.
            "digest": "A String", # The base-16 encoded bytes of this digest. Suitable for use in a DS resource record.
          },
        ],
        "id": "A String", # Unique identifier for the resource; defined by the server (output only).
        "isActive": 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.
      },
    },
    "zoneContext": { # Only populated if the operation targeted a ManagedZone (output only).
      "newValue": { # 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.
        "kind": "dns#managedZone", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZone".
        "labels": { # User labels.
          "a_key": "A String",
        },
        "description": "A String", # A mutable string of at most 1024 characters associated with this resource for the user's convenience. Has no effect on the managed zone's function.
        "nameServers": [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
          "A String",
        ],
        "forwardingConfig": { # 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.
          "kind": "dns#managedZoneForwardingConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneForwardingConfig".
          "targetNameServers": [ # List of target name servers to forward to. Cloud DNS will select the best available name server if more than one target is given.
            {
              "ipv4Address": "A String", # IPv4 address of a target name server.
              "kind": "dns#managedZoneForwardingConfigNameServerTarget", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneForwardingConfigNameServerTarget".
            },
          ],
        },
        "creationTime": "A String", # The time that this resource was created on the server. This is in RFC3339 text format. Output only.
        "visibility": "A String", # The zone's visibility: public zones are exposed to the Internet, while private zones are visible only to Virtual Private Cloud resources.
        "nameServerSet": "A String", # 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.
        "privateVisibilityConfig": { # For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.
          "kind": "dns#managedZonePrivateVisibilityConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePrivateVisibilityConfig".
          "networks": [ # The list of VPC networks that can see this zone.
            {
              "kind": "dns#managedZonePrivateVisibilityConfigNetwork", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePrivateVisibilityConfigNetwork".
              "networkUrl": "A String", # 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}
            },
          ],
        },
        "dnsName": "A String", # The DNS name of this managed zone, for instance "example.com.".
        "dnssecConfig": { # DNSSEC configuration.
          "kind": "dns#managedZoneDnsSecConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneDnsSecConfig".
          "defaultKeySpecs": [ # Specifies parameters that will be used for generating initial DnsKeys for this ManagedZone. Output only while state is not OFF.
            { # Parameters for DnsKey key generation. Used for generating initial keys for a new ManagedZone and as default when adding a new DnsKey.
              "keyType": "A String", # 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.
              "keyLength": 42, # Length of the keys in bits.
              "kind": "dns#dnsKeySpec", # Identifies what kind of resource this is. Value: the fixed string "dns#dnsKeySpec".
              "algorithm": "A String", # String mnemonic specifying the DNSSEC algorithm of this key.
            },
          ],
          "state": "A String", # Specifies whether DNSSEC is enabled, and what mode it is in.
          "nonExistence": "A String", # Specifies the mechanism used to provide authenticated denial-of-existence responses. Output only while state is not OFF.
        },
        "peeringConfig": { # 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.
          "kind": "dns#managedZonePeeringConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePeeringConfig".
          "targetNetwork": { # The network with which to peer.
            "kind": "dns#managedZonePeeringConfigTargetNetwork", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePeeringConfigTargetNetwork".
            "deactivateTime": "A String", # If this zone has been deactivated due to a problem with the network it targeted, the time at which it was deactivated. The zone can be deactivated if, for instance, the network it targeted was deleted. If the targeted network is still present, this will be the empty string. This is in RFC3339 text format. Output only.
            "networkUrl": "A String", # 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}
          },
        },
        "id": "A String", # Unique identifier for the resource; defined by the server (output only)
        "name": "A String", # 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.
      },
      "oldValue": { # 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.
        "kind": "dns#managedZone", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZone".
        "labels": { # User labels.
          "a_key": "A String",
        },
        "description": "A String", # A mutable string of at most 1024 characters associated with this resource for the user's convenience. Has no effect on the managed zone's function.
        "nameServers": [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
          "A String",
        ],
        "forwardingConfig": { # 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.
          "kind": "dns#managedZoneForwardingConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneForwardingConfig".
          "targetNameServers": [ # List of target name servers to forward to. Cloud DNS will select the best available name server if more than one target is given.
            {
              "ipv4Address": "A String", # IPv4 address of a target name server.
              "kind": "dns#managedZoneForwardingConfigNameServerTarget", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneForwardingConfigNameServerTarget".
            },
          ],
        },
        "creationTime": "A String", # The time that this resource was created on the server. This is in RFC3339 text format. Output only.
        "visibility": "A String", # The zone's visibility: public zones are exposed to the Internet, while private zones are visible only to Virtual Private Cloud resources.
        "nameServerSet": "A String", # 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.
        "privateVisibilityConfig": { # For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.
          "kind": "dns#managedZonePrivateVisibilityConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePrivateVisibilityConfig".
          "networks": [ # The list of VPC networks that can see this zone.
            {
              "kind": "dns#managedZonePrivateVisibilityConfigNetwork", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePrivateVisibilityConfigNetwork".
              "networkUrl": "A String", # 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}
            },
          ],
        },
        "dnsName": "A String", # The DNS name of this managed zone, for instance "example.com.".
        "dnssecConfig": { # DNSSEC configuration.
          "kind": "dns#managedZoneDnsSecConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZoneDnsSecConfig".
          "defaultKeySpecs": [ # Specifies parameters that will be used for generating initial DnsKeys for this ManagedZone. Output only while state is not OFF.
            { # Parameters for DnsKey key generation. Used for generating initial keys for a new ManagedZone and as default when adding a new DnsKey.
              "keyType": "A String", # 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.
              "keyLength": 42, # Length of the keys in bits.
              "kind": "dns#dnsKeySpec", # Identifies what kind of resource this is. Value: the fixed string "dns#dnsKeySpec".
              "algorithm": "A String", # String mnemonic specifying the DNSSEC algorithm of this key.
            },
          ],
          "state": "A String", # Specifies whether DNSSEC is enabled, and what mode it is in.
          "nonExistence": "A String", # Specifies the mechanism used to provide authenticated denial-of-existence responses. Output only while state is not OFF.
        },
        "peeringConfig": { # 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.
          "kind": "dns#managedZonePeeringConfig", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePeeringConfig".
          "targetNetwork": { # The network with which to peer.
            "kind": "dns#managedZonePeeringConfigTargetNetwork", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZonePeeringConfigTargetNetwork".
            "deactivateTime": "A String", # If this zone has been deactivated due to a problem with the network it targeted, the time at which it was deactivated. The zone can be deactivated if, for instance, the network it targeted was deleted. If the targeted network is still present, this will be the empty string. This is in RFC3339 text format. Output only.
            "networkUrl": "A String", # 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}
          },
        },
        "id": "A String", # Unique identifier for the resource; defined by the server (output only)
        "name": "A String", # 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.
      },
    },
    "user": "A String", # User who requested the operation, for example: user@example.com. cloud-dns-system for operations automatically done by the system. (output only)
    "startTime": "A String", # The time that this operation was started by the server. This is in RFC3339 text format (output only).
    "type": "A String", # Type of the operation. Operations include insert, update, and delete (output only).
    "id": "A String", # 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)
  }</pre>
</div>

</body></html>