chore: update docs/dyn , add static discovery files to discovery_cache/documents (#1111)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/78f53313-0c78-4a29-8841-f031665a4c6a/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: https://github.com/googleapis/synthtool/commit/c2de32114ec484aa708d32012d1fa8d75232daf5
diff --git a/googleapiclient/discovery_cache/documents/dns.v1.json b/googleapiclient/discovery_cache/documents/dns.v1.json
new file mode 100644
index 0000000..02af8ae
--- /dev/null
+++ b/googleapiclient/discovery_cache/documents/dns.v1.json
@@ -0,0 +1,2107 @@
+{
+  "rootUrl": "https://dns.googleapis.com/",
+  "basePath": "",
+  "servicePath": "",
+  "ownerDomain": "google.com",
+  "resources": {
+    "dnsKeys": {
+      "methods": {
+        "list": {
+          "flatPath": "dns/v1/projects/{project}/managedZones/{managedZone}/dnsKeys",
+          "parameters": {
+            "project": {
+              "type": "string",
+              "description": "Identifies the project addressed by this request.",
+              "required": true,
+              "location": "path"
+            },
+            "digestType": {
+              "location": "query",
+              "type": "string",
+              "description": "An optional comma-separated list of digest types to compute and display for key signing keys. If omitted, the recommended digest type will be computed and displayed."
+            },
+            "pageToken": {
+              "description": "Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.",
+              "location": "query",
+              "type": "string"
+            },
+            "maxResults": {
+              "format": "int32",
+              "description": "Optional. Maximum number of results to be returned. If unspecified, the server will decide how many results to return.",
+              "location": "query",
+              "type": "integer"
+            },
+            "managedZone": {
+              "required": true,
+              "type": "string",
+              "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or ID.",
+              "location": "path"
+            }
+          },
+          "description": "Enumerate DnsKeys to a ResourceRecordSet collection.",
+          "id": "dns.dnsKeys.list",
+          "response": {
+            "$ref": "DnsKeysListResponse"
+          },
+          "path": "dns/v1/projects/{project}/managedZones/{managedZone}/dnsKeys",
+          "parameterOrder": [
+            "project",
+            "managedZone"
+          ],
+          "httpMethod": "GET",
+          "scopes": [
+            "https://www.googleapis.com/auth/cloud-platform",
+            "https://www.googleapis.com/auth/cloud-platform.read-only",
+            "https://www.googleapis.com/auth/ndev.clouddns.readonly",
+            "https://www.googleapis.com/auth/ndev.clouddns.readwrite"
+          ]
+        },
+        "get": {
+          "path": "dns/v1/projects/{project}/managedZones/{managedZone}/dnsKeys/{dnsKeyId}",
+          "httpMethod": "GET",
+          "parameterOrder": [
+            "project",
+            "managedZone",
+            "dnsKeyId"
+          ],
+          "parameters": {
+            "clientOperationId": {
+              "location": "query",
+              "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.",
+              "type": "string"
+            },
+            "project": {
+              "required": true,
+              "location": "path",
+              "type": "string",
+              "description": "Identifies the project addressed by this request."
+            },
+            "digestType": {
+              "type": "string",
+              "location": "query",
+              "description": "An optional comma-separated list of digest types to compute and display for key signing keys. If omitted, the recommended digest type will be computed and displayed."
+            },
+            "managedZone": {
+              "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or ID.",
+              "required": true,
+              "location": "path",
+              "type": "string"
+            },
+            "dnsKeyId": {
+              "location": "path",
+              "required": true,
+              "type": "string",
+              "description": "The identifier of the requested DnsKey."
+            }
+          },
+          "id": "dns.dnsKeys.get",
+          "description": "Fetch the representation of an existing DnsKey.",
+          "response": {
+            "$ref": "DnsKey"
+          },
+          "flatPath": "dns/v1/projects/{project}/managedZones/{managedZone}/dnsKeys/{dnsKeyId}",
+          "scopes": [
+            "https://www.googleapis.com/auth/cloud-platform",
+            "https://www.googleapis.com/auth/cloud-platform.read-only",
+            "https://www.googleapis.com/auth/ndev.clouddns.readonly",
+            "https://www.googleapis.com/auth/ndev.clouddns.readwrite"
+          ]
+        }
+      }
+    },
+    "policies": {
+      "methods": {
+        "update": {
+          "flatPath": "dns/v1/projects/{project}/policies/{policy}",
+          "path": "dns/v1/projects/{project}/policies/{policy}",
+          "response": {
+            "$ref": "PoliciesUpdateResponse"
+          },
+          "scopes": [
+            "https://www.googleapis.com/auth/cloud-platform",
+            "https://www.googleapis.com/auth/ndev.clouddns.readwrite"
+          ],
+          "description": "Update an existing Policy.",
+          "request": {
+            "$ref": "Policy"
+          },
+          "httpMethod": "PUT",
+          "parameters": {
+            "policy": {
+              "description": "User given friendly name of the policy addressed by this request.",
+              "type": "string",
+              "required": true,
+              "location": "path"
+            },
+            "clientOperationId": {
+              "type": "string",
+              "location": "query",
+              "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection."
+            },
+            "project": {
+              "description": "Identifies the project addressed by this request.",
+              "type": "string",
+              "location": "path",
+              "required": true
+            }
+          },
+          "id": "dns.policies.update",
+          "parameterOrder": [
+            "project",
+            "policy"
+          ]
+        },
+        "create": {
+          "parameterOrder": [
+            "project"
+          ],
+          "scopes": [
+            "https://www.googleapis.com/auth/cloud-platform",
+            "https://www.googleapis.com/auth/ndev.clouddns.readwrite"
+          ],
+          "response": {
+            "$ref": "Policy"
+          },
+          "id": "dns.policies.create",
+          "request": {
+            "$ref": "Policy"
+          },
+          "flatPath": "dns/v1/projects/{project}/policies",
+          "parameters": {
+            "clientOperationId": {
+              "location": "query",
+              "type": "string",
+              "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection."
+            },
+            "project": {
+              "type": "string",
+              "required": true,
+              "location": "path",
+              "description": "Identifies the project addressed by this request."
+            }
+          },
+          "path": "dns/v1/projects/{project}/policies",
+          "httpMethod": "POST",
+          "description": "Create a new Policy"
+        },
+        "get": {
+          "response": {
+            "$ref": "Policy"
+          },
+          "scopes": [
+            "https://www.googleapis.com/auth/cloud-platform",
+            "https://www.googleapis.com/auth/cloud-platform.read-only",
+            "https://www.googleapis.com/auth/ndev.clouddns.readonly",
+            "https://www.googleapis.com/auth/ndev.clouddns.readwrite"
+          ],
+          "id": "dns.policies.get",
+          "parameters": {
+            "clientOperationId": {
+              "type": "string",
+              "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.",
+              "location": "query"
+            },
+            "project": {
+              "required": true,
+              "location": "path",
+              "type": "string",
+              "description": "Identifies the project addressed by this request."
+            },
+            "policy": {
+              "required": true,
+              "location": "path",
+              "type": "string",
+              "description": "User given friendly name of the policy addressed by this request."
+            }
+          },
+          "httpMethod": "GET",
+          "flatPath": "dns/v1/projects/{project}/policies/{policy}",
+          "path": "dns/v1/projects/{project}/policies/{policy}",
+          "parameterOrder": [
+            "project",
+            "policy"
+          ],
+          "description": "Fetch the representation of an existing Policy."
+        },
+        "patch": {
+          "httpMethod": "PATCH",
+          "id": "dns.policies.patch",
+          "parameters": {
+            "project": {
+              "location": "path",
+              "description": "Identifies the project addressed by this request.",
+              "required": true,
+              "type": "string"
+            },
+            "clientOperationId": {
+              "type": "string",
+              "location": "query",
+              "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection."
+            },
+            "policy": {
+              "description": "User given friendly name of the policy addressed by this request.",
+              "location": "path",
+              "required": true,
+              "type": "string"
+            }
+          },
+          "parameterOrder": [
+            "project",
+            "policy"
+          ],
+          "response": {
+            "$ref": "PoliciesPatchResponse"
+          },
+          "path": "dns/v1/projects/{project}/policies/{policy}",
+          "scopes": [
+            "https://www.googleapis.com/auth/cloud-platform",
+            "https://www.googleapis.com/auth/ndev.clouddns.readwrite"
+          ],
+          "request": {
+            "$ref": "Policy"
+          },
+          "flatPath": "dns/v1/projects/{project}/policies/{policy}",
+          "description": "Apply a partial update to an existing Policy."
+        },
+        "delete": {
+          "httpMethod": "DELETE",
+          "id": "dns.policies.delete",
+          "parameterOrder": [
+            "project",
+            "policy"
+          ],
+          "description": "Delete a previously created Policy. Will fail if the policy is still being referenced by a network.",
+          "flatPath": "dns/v1/projects/{project}/policies/{policy}",
+          "scopes": [
+            "https://www.googleapis.com/auth/cloud-platform",
+            "https://www.googleapis.com/auth/ndev.clouddns.readwrite"
+          ],
+          "path": "dns/v1/projects/{project}/policies/{policy}",
+          "parameters": {
+            "policy": {
+              "description": "User given friendly name of the policy addressed by this request.",
+              "required": true,
+              "type": "string",
+              "location": "path"
+            },
+            "project": {
+              "required": true,
+              "description": "Identifies the project addressed by this request.",
+              "location": "path",
+              "type": "string"
+            },
+            "clientOperationId": {
+              "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.",
+              "location": "query",
+              "type": "string"
+            }
+          }
+        },
+        "list": {
+          "flatPath": "dns/v1/projects/{project}/policies",
+          "id": "dns.policies.list",
+          "path": "dns/v1/projects/{project}/policies",
+          "response": {
+            "$ref": "PoliciesListResponse"
+          },
+          "scopes": [
+            "https://www.googleapis.com/auth/cloud-platform",
+            "https://www.googleapis.com/auth/cloud-platform.read-only",
+            "https://www.googleapis.com/auth/ndev.clouddns.readonly",
+            "https://www.googleapis.com/auth/ndev.clouddns.readwrite"
+          ],
+          "description": "Enumerate all Policies associated with a project.",
+          "parameterOrder": [
+            "project"
+          ],
+          "parameters": {
+            "maxResults": {
+              "location": "query",
+              "format": "int32",
+              "description": "Optional. Maximum number of results to be returned. If unspecified, the server will decide how many results to return.",
+              "type": "integer"
+            },
+            "project": {
+              "required": true,
+              "description": "Identifies the project addressed by this request.",
+              "type": "string",
+              "location": "path"
+            },
+            "pageToken": {
+              "type": "string",
+              "description": "Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.",
+              "location": "query"
+            }
+          },
+          "httpMethod": "GET"
+        }
+      }
+    },
+    "managedZones": {
+      "methods": {
+        "patch": {
+          "id": "dns.managedZones.patch",
+          "httpMethod": "PATCH",
+          "parameters": {
+            "project": {
+              "type": "string",
+              "description": "Identifies the project addressed by this request.",
+              "location": "path",
+              "required": true
+            },
+            "managedZone": {
+              "type": "string",
+              "location": "path",
+              "required": true,
+              "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or ID."
+            },
+            "clientOperationId": {
+              "type": "string",
+              "location": "query",
+              "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection."
+            }
+          },
+          "path": "dns/v1/projects/{project}/managedZones/{managedZone}",
+          "request": {
+            "$ref": "ManagedZone"
+          },
+          "parameterOrder": [
+            "project",
+            "managedZone"
+          ],
+          "scopes": [
+            "https://www.googleapis.com/auth/cloud-platform",
+            "https://www.googleapis.com/auth/ndev.clouddns.readwrite"
+          ],
+          "flatPath": "dns/v1/projects/{project}/managedZones/{managedZone}",
+          "response": {
+            "$ref": "Operation"
+          },
+          "description": "Apply a partial update to an existing ManagedZone."
+        },
+        "delete": {
+          "parameters": {
+            "managedZone": {
+              "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or ID.",
+              "required": true,
+              "type": "string",
+              "location": "path"
+            },
+            "clientOperationId": {
+              "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.",
+              "location": "query",
+              "type": "string"
+            },
+            "project": {
+              "required": true,
+              "description": "Identifies the project addressed by this request.",
+              "location": "path",
+              "type": "string"
+            }
+          },
+          "path": "dns/v1/projects/{project}/managedZones/{managedZone}",
+          "description": "Delete a previously created ManagedZone.",
+          "parameterOrder": [
+            "project",
+            "managedZone"
+          ],
+          "httpMethod": "DELETE",
+          "flatPath": "dns/v1/projects/{project}/managedZones/{managedZone}",
+          "scopes": [
+            "https://www.googleapis.com/auth/cloud-platform",
+            "https://www.googleapis.com/auth/ndev.clouddns.readwrite"
+          ],
+          "id": "dns.managedZones.delete"
+        },
+        "update": {
+          "parameterOrder": [
+            "project",
+            "managedZone"
+          ],
+          "request": {
+            "$ref": "ManagedZone"
+          },
+          "description": "Update an existing ManagedZone.",
+          "id": "dns.managedZones.update",
+          "parameters": {
+            "project": {
+              "description": "Identifies the project addressed by this request.",
+              "required": true,
+              "type": "string",
+              "location": "path"
+            },
+            "managedZone": {
+              "required": true,
+              "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or ID.",
+              "type": "string",
+              "location": "path"
+            },
+            "clientOperationId": {
+              "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.",
+              "location": "query",
+              "type": "string"
+            }
+          },
+          "flatPath": "dns/v1/projects/{project}/managedZones/{managedZone}",
+          "path": "dns/v1/projects/{project}/managedZones/{managedZone}",
+          "response": {
+            "$ref": "Operation"
+          },
+          "scopes": [
+            "https://www.googleapis.com/auth/cloud-platform",
+            "https://www.googleapis.com/auth/ndev.clouddns.readwrite"
+          ],
+          "httpMethod": "PUT"
+        },
+        "list": {
+          "httpMethod": "GET",
+          "path": "dns/v1/projects/{project}/managedZones",
+          "response": {
+            "$ref": "ManagedZonesListResponse"
+          },
+          "parameterOrder": [
+            "project"
+          ],
+          "flatPath": "dns/v1/projects/{project}/managedZones",
+          "description": "Enumerate ManagedZones that have been created but not yet deleted.",
+          "scopes": [
+            "https://www.googleapis.com/auth/cloud-platform",
+            "https://www.googleapis.com/auth/cloud-platform.read-only",
+            "https://www.googleapis.com/auth/ndev.clouddns.readonly",
+            "https://www.googleapis.com/auth/ndev.clouddns.readwrite"
+          ],
+          "parameters": {
+            "project": {
+              "type": "string",
+              "description": "Identifies the project addressed by this request.",
+              "location": "path",
+              "required": true
+            },
+            "pageToken": {
+              "location": "query",
+              "type": "string",
+              "description": "Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request."
+            },
+            "maxResults": {
+              "location": "query",
+              "format": "int32",
+              "description": "Optional. Maximum number of results to be returned. If unspecified, the server will decide how many results to return.",
+              "type": "integer"
+            },
+            "dnsName": {
+              "description": "Restricts the list to return only zones with this domain name.",
+              "location": "query",
+              "type": "string"
+            }
+          },
+          "id": "dns.managedZones.list"
+        },
+        "get": {
+          "parameters": {
+            "clientOperationId": {
+              "location": "query",
+              "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.",
+              "type": "string"
+            },
+            "managedZone": {
+              "type": "string",
+              "location": "path",
+              "required": true,
+              "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or ID."
+            },
+            "project": {
+              "type": "string",
+              "description": "Identifies the project addressed by this request.",
+              "location": "path",
+              "required": true
+            }
+          },
+          "parameterOrder": [
+            "project",
+            "managedZone"
+          ],
+          "flatPath": "dns/v1/projects/{project}/managedZones/{managedZone}",
+          "id": "dns.managedZones.get",
+          "httpMethod": "GET",
+          "response": {
+            "$ref": "ManagedZone"
+          },
+          "path": "dns/v1/projects/{project}/managedZones/{managedZone}",
+          "description": "Fetch the representation of an existing ManagedZone.",
+          "scopes": [
+            "https://www.googleapis.com/auth/cloud-platform",
+            "https://www.googleapis.com/auth/cloud-platform.read-only",
+            "https://www.googleapis.com/auth/ndev.clouddns.readonly",
+            "https://www.googleapis.com/auth/ndev.clouddns.readwrite"
+          ]
+        },
+        "create": {
+          "path": "dns/v1/projects/{project}/managedZones",
+          "id": "dns.managedZones.create",
+          "request": {
+            "$ref": "ManagedZone"
+          },
+          "description": "Create a new ManagedZone.",
+          "parameterOrder": [
+            "project"
+          ],
+          "parameters": {
+            "clientOperationId": {
+              "type": "string",
+              "location": "query",
+              "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection."
+            },
+            "project": {
+              "type": "string",
+              "description": "Identifies the project addressed by this request.",
+              "location": "path",
+              "required": true
+            }
+          },
+          "response": {
+            "$ref": "ManagedZone"
+          },
+          "flatPath": "dns/v1/projects/{project}/managedZones",
+          "httpMethod": "POST",
+          "scopes": [
+            "https://www.googleapis.com/auth/cloud-platform",
+            "https://www.googleapis.com/auth/ndev.clouddns.readwrite"
+          ]
+        }
+      }
+    },
+    "managedZoneOperations": {
+      "methods": {
+        "get": {
+          "description": "Fetch the representation of an existing Operation.",
+          "response": {
+            "$ref": "Operation"
+          },
+          "flatPath": "dns/v1/projects/{project}/managedZones/{managedZone}/operations/{operation}",
+          "scopes": [
+            "https://www.googleapis.com/auth/cloud-platform",
+            "https://www.googleapis.com/auth/cloud-platform.read-only",
+            "https://www.googleapis.com/auth/ndev.clouddns.readonly",
+            "https://www.googleapis.com/auth/ndev.clouddns.readwrite"
+          ],
+          "httpMethod": "GET",
+          "id": "dns.managedZoneOperations.get",
+          "parameterOrder": [
+            "project",
+            "managedZone",
+            "operation"
+          ],
+          "path": "dns/v1/projects/{project}/managedZones/{managedZone}/operations/{operation}",
+          "parameters": {
+            "clientOperationId": {
+              "location": "query",
+              "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.",
+              "type": "string"
+            },
+            "project": {
+              "required": true,
+              "location": "path",
+              "type": "string",
+              "description": "Identifies the project addressed by this request."
+            },
+            "managedZone": {
+              "required": true,
+              "type": "string",
+              "description": "Identifies the managed zone addressed by this request.",
+              "location": "path"
+            },
+            "operation": {
+              "required": true,
+              "location": "path",
+              "type": "string",
+              "description": "Identifies the operation addressed by this request."
+            }
+          }
+        },
+        "list": {
+          "parameters": {
+            "sortBy": {
+              "type": "string",
+              "default": "startTime",
+              "enumDescriptions": [
+                "",
+                ""
+              ],
+              "description": "Sorting criterion. The only supported values are START_TIME and ID.",
+              "enum": [
+                "startTime",
+                "id"
+              ],
+              "location": "query"
+            },
+            "pageToken": {
+              "location": "query",
+              "description": "Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.",
+              "type": "string"
+            },
+            "managedZone": {
+              "type": "string",
+              "description": "Identifies the managed zone addressed by this request.",
+              "required": true,
+              "location": "path"
+            },
+            "project": {
+              "type": "string",
+              "required": true,
+              "description": "Identifies the project addressed by this request.",
+              "location": "path"
+            },
+            "maxResults": {
+              "location": "query",
+              "type": "integer",
+              "format": "int32",
+              "description": "Optional. Maximum number of results to be returned. If unspecified, the server will decide how many results to return."
+            }
+          },
+          "parameterOrder": [
+            "project",
+            "managedZone"
+          ],
+          "httpMethod": "GET",
+          "response": {
+            "$ref": "ManagedZoneOperationsListResponse"
+          },
+          "flatPath": "dns/v1/projects/{project}/managedZones/{managedZone}/operations",
+          "id": "dns.managedZoneOperations.list",
+          "scopes": [
+            "https://www.googleapis.com/auth/cloud-platform",
+            "https://www.googleapis.com/auth/cloud-platform.read-only",
+            "https://www.googleapis.com/auth/ndev.clouddns.readonly",
+            "https://www.googleapis.com/auth/ndev.clouddns.readwrite"
+          ],
+          "description": "Enumerate Operations for the given ManagedZone.",
+          "path": "dns/v1/projects/{project}/managedZones/{managedZone}/operations"
+        }
+      }
+    },
+    "resourceRecordSets": {
+      "methods": {
+        "list": {
+          "flatPath": "dns/v1/projects/{project}/managedZones/{managedZone}/rrsets",
+          "httpMethod": "GET",
+          "scopes": [
+            "https://www.googleapis.com/auth/cloud-platform",
+            "https://www.googleapis.com/auth/cloud-platform.read-only",
+            "https://www.googleapis.com/auth/ndev.clouddns.readonly",
+            "https://www.googleapis.com/auth/ndev.clouddns.readwrite"
+          ],
+          "parameters": {
+            "type": {
+              "location": "query",
+              "type": "string",
+              "description": "Restricts the list to return only records of this type. If present, the \"name\" parameter must also be present."
+            },
+            "name": {
+              "location": "query",
+              "type": "string",
+              "description": "Restricts the list to return only records with this fully qualified domain name."
+            },
+            "project": {
+              "required": true,
+              "type": "string",
+              "location": "path",
+              "description": "Identifies the project addressed by this request."
+            },
+            "pageToken": {
+              "type": "string",
+              "location": "query",
+              "description": "Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request."
+            },
+            "managedZone": {
+              "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or ID.",
+              "location": "path",
+              "type": "string",
+              "required": true
+            },
+            "maxResults": {
+              "location": "query",
+              "format": "int32",
+              "description": "Optional. Maximum number of results to be returned. If unspecified, the server will decide how many results to return.",
+              "type": "integer"
+            }
+          },
+          "description": "Enumerate ResourceRecordSets that have been created but not yet deleted.",
+          "response": {
+            "$ref": "ResourceRecordSetsListResponse"
+          },
+          "id": "dns.resourceRecordSets.list",
+          "path": "dns/v1/projects/{project}/managedZones/{managedZone}/rrsets",
+          "parameterOrder": [
+            "project",
+            "managedZone"
+          ]
+        }
+      }
+    },
+    "changes": {
+      "methods": {
+        "create": {
+          "path": "dns/v1/projects/{project}/managedZones/{managedZone}/changes",
+          "parameterOrder": [
+            "project",
+            "managedZone"
+          ],
+          "response": {
+            "$ref": "Change"
+          },
+          "httpMethod": "POST",
+          "request": {
+            "$ref": "Change"
+          },
+          "parameters": {
+            "managedZone": {
+              "required": true,
+              "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or ID.",
+              "location": "path",
+              "type": "string"
+            },
+            "project": {
+              "required": true,
+              "type": "string",
+              "location": "path",
+              "description": "Identifies the project addressed by this request."
+            },
+            "clientOperationId": {
+              "location": "query",
+              "type": "string",
+              "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection."
+            }
+          },
+          "id": "dns.changes.create",
+          "description": "Atomically update the ResourceRecordSet collection.",
+          "flatPath": "dns/v1/projects/{project}/managedZones/{managedZone}/changes",
+          "scopes": [
+            "https://www.googleapis.com/auth/cloud-platform",
+            "https://www.googleapis.com/auth/ndev.clouddns.readwrite"
+          ]
+        },
+        "get": {
+          "id": "dns.changes.get",
+          "description": "Fetch the representation of an existing Change.",
+          "httpMethod": "GET",
+          "path": "dns/v1/projects/{project}/managedZones/{managedZone}/changes/{changeId}",
+          "response": {
+            "$ref": "Change"
+          },
+          "parameters": {
+            "project": {
+              "location": "path",
+              "type": "string",
+              "description": "Identifies the project addressed by this request.",
+              "required": true
+            },
+            "clientOperationId": {
+              "location": "query",
+              "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.",
+              "type": "string"
+            },
+            "managedZone": {
+              "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or ID.",
+              "required": true,
+              "location": "path",
+              "type": "string"
+            },
+            "changeId": {
+              "type": "string",
+              "required": true,
+              "description": "The identifier of the requested change, from a previous ResourceRecordSetsChangeResponse.",
+              "location": "path"
+            }
+          },
+          "flatPath": "dns/v1/projects/{project}/managedZones/{managedZone}/changes/{changeId}",
+          "scopes": [
+            "https://www.googleapis.com/auth/cloud-platform",
+            "https://www.googleapis.com/auth/cloud-platform.read-only",
+            "https://www.googleapis.com/auth/ndev.clouddns.readonly",
+            "https://www.googleapis.com/auth/ndev.clouddns.readwrite"
+          ],
+          "parameterOrder": [
+            "project",
+            "managedZone",
+            "changeId"
+          ]
+        },
+        "list": {
+          "path": "dns/v1/projects/{project}/managedZones/{managedZone}/changes",
+          "id": "dns.changes.list",
+          "response": {
+            "$ref": "ChangesListResponse"
+          },
+          "parameters": {
+            "pageToken": {
+              "description": "Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.",
+              "type": "string",
+              "location": "query"
+            },
+            "sortOrder": {
+              "location": "query",
+              "type": "string",
+              "description": "Sorting order direction: 'ascending' or 'descending'."
+            },
+            "managedZone": {
+              "location": "path",
+              "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or ID.",
+              "required": true,
+              "type": "string"
+            },
+            "project": {
+              "type": "string",
+              "description": "Identifies the project addressed by this request.",
+              "required": true,
+              "location": "path"
+            },
+            "sortBy": {
+              "description": "Sorting criterion. The only supported value is change sequence.",
+              "location": "query",
+              "enumDescriptions": [
+                ""
+              ],
+              "enum": [
+                "changeSequence"
+              ],
+              "type": "string",
+              "default": "changeSequence"
+            },
+            "maxResults": {
+              "type": "integer",
+              "format": "int32",
+              "location": "query",
+              "description": "Optional. Maximum number of results to be returned. If unspecified, the server will decide how many results to return."
+            }
+          },
+          "description": "Enumerate Changes to a ResourceRecordSet collection.",
+          "httpMethod": "GET",
+          "parameterOrder": [
+            "project",
+            "managedZone"
+          ],
+          "flatPath": "dns/v1/projects/{project}/managedZones/{managedZone}/changes",
+          "scopes": [
+            "https://www.googleapis.com/auth/cloud-platform",
+            "https://www.googleapis.com/auth/cloud-platform.read-only",
+            "https://www.googleapis.com/auth/ndev.clouddns.readonly",
+            "https://www.googleapis.com/auth/ndev.clouddns.readwrite"
+          ]
+        }
+      }
+    },
+    "projects": {
+      "methods": {
+        "get": {
+          "scopes": [
+            "https://www.googleapis.com/auth/cloud-platform",
+            "https://www.googleapis.com/auth/cloud-platform.read-only",
+            "https://www.googleapis.com/auth/ndev.clouddns.readonly",
+            "https://www.googleapis.com/auth/ndev.clouddns.readwrite"
+          ],
+          "flatPath": "dns/v1/projects/{project}",
+          "path": "dns/v1/projects/{project}",
+          "response": {
+            "$ref": "Project"
+          },
+          "parameterOrder": [
+            "project"
+          ],
+          "id": "dns.projects.get",
+          "parameters": {
+            "clientOperationId": {
+              "description": "For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.",
+              "type": "string",
+              "location": "query"
+            },
+            "project": {
+              "location": "path",
+              "description": "Identifies the project addressed by this request.",
+              "type": "string",
+              "required": true
+            }
+          },
+          "httpMethod": "GET",
+          "description": "Fetch the representation of an existing Project."
+        }
+      }
+    }
+  },
+  "schemas": {
+    "ManagedZoneDnsSecConfig": {
+      "type": "object",
+      "properties": {
+        "defaultKeySpecs": {
+          "type": "array",
+          "items": {
+            "$ref": "DnsKeySpec"
+          },
+          "description": "Specifies parameters for generating initial DnsKeys for this ManagedZone. Can only be changed while the state is OFF."
+        },
+        "nonExistence": {
+          "type": "string",
+          "description": "Specifies the mechanism for authenticated denial-of-existence responses. Can only be changed while the state is OFF.",
+          "enumDescriptions": [
+            "",
+            ""
+          ],
+          "enum": [
+            "nsec",
+            "nsec3"
+          ]
+        },
+        "kind": {
+          "default": "dns#managedZoneDnsSecConfig",
+          "type": "string"
+        },
+        "state": {
+          "enum": [
+            "off",
+            "on",
+            "transfer"
+          ],
+          "enumDescriptions": [
+            "DNSSEC is disabled; the zone is not signed.",
+            "DNSSEC is enabled; the zone is signed and fully managed.",
+            "DNSSEC is enabled, but in a \"transfer\" mode."
+          ],
+          "description": "Specifies whether DNSSEC is enabled, and what mode it is in.",
+          "type": "string"
+        }
+      },
+      "id": "ManagedZoneDnsSecConfig"
+    },
+    "DnsKeysListResponse": {
+      "description": "The response to a request to enumerate DnsKeys in a ManagedZone.",
+      "properties": {
+        "header": {
+          "$ref": "ResponseHeader"
+        },
+        "dnsKeys": {
+          "type": "array",
+          "description": "The requested resources.",
+          "items": {
+            "$ref": "DnsKey"
+          }
+        },
+        "kind": {
+          "type": "string",
+          "description": "Type of resource.",
+          "default": "dns#dnsKeysListResponse"
+        },
+        "nextPageToken": {
+          "description": "The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your pagination token. In this way you can retrieve the complete contents of even very large collections one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of all elements returned will be an inconsistent view of the collection. There is no way to retrieve a \"snapshot\" of collections larger than the maximum page size.",
+          "type": "string"
+        }
+      },
+      "type": "object",
+      "id": "DnsKeysListResponse"
+    },
+    "OperationDnsKeyContext": {
+      "id": "OperationDnsKeyContext",
+      "type": "object",
+      "properties": {
+        "newValue": {
+          "$ref": "DnsKey",
+          "description": "The post-operation DnsKey resource."
+        },
+        "oldValue": {
+          "$ref": "DnsKey",
+          "description": "The pre-operation DnsKey resource."
+        }
+      }
+    },
+    "Quota": {
+      "description": "Limits associated with a Project.",
+      "properties": {
+        "rrsetDeletionsPerChange": {
+          "format": "int32",
+          "type": "integer",
+          "description": "Maximum allowed number of ResourceRecordSets to delete per ChangesCreateRequest."
+        },
+        "kind": {
+          "default": "dns#quota",
+          "type": "string"
+        },
+        "targetNameServersPerManagedZone": {
+          "format": "int32",
+          "description": "Maximum allowed number of target name servers per managed forwarding zone.",
+          "type": "integer"
+        },
+        "networksPerPolicy": {
+          "format": "int32",
+          "description": "Maximum allowed number of networks per policy.",
+          "type": "integer"
+        },
+        "policies": {
+          "type": "integer",
+          "format": "int32",
+          "description": "Maximum allowed number of policies per project."
+        },
+        "managedZones": {
+          "type": "integer",
+          "description": "Maximum allowed number of managed zones in the project.",
+          "format": "int32"
+        },
+        "rrsetAdditionsPerChange": {
+          "type": "integer",
+          "description": "Maximum allowed number of ResourceRecordSets to add per ChangesCreateRequest.",
+          "format": "int32"
+        },
+        "dnsKeysPerManagedZone": {
+          "description": "Maximum allowed number of DnsKeys per ManagedZone.",
+          "type": "integer",
+          "format": "int32"
+        },
+        "resourceRecordsPerRrset": {
+          "format": "int32",
+          "description": "Maximum allowed number of ResourceRecords per ResourceRecordSet.",
+          "type": "integer"
+        },
+        "networksPerManagedZone": {
+          "description": "Maximum allowed number of networks to which a privately scoped zone can be attached.",
+          "type": "integer",
+          "format": "int32"
+        },
+        "whitelistedKeySpecs": {
+          "type": "array",
+          "description": "DNSSEC algorithm and key length types that can be used for DnsKeys.",
+          "items": {
+            "$ref": "DnsKeySpec"
+          }
+        },
+        "totalRrdataSizePerChange": {
+          "type": "integer",
+          "format": "int32",
+          "description": "Maximum allowed size for total rrdata in one ChangesCreateRequest in bytes."
+        },
+        "targetNameServersPerPolicy": {
+          "type": "integer",
+          "format": "int32",
+          "description": "Maximum allowed number of alternative target name servers per policy."
+        },
+        "managedZonesPerNetwork": {
+          "format": "int32",
+          "type": "integer",
+          "description": "Maximum allowed number of managed zones which can be attached to a network."
+        },
+        "rrsetsPerManagedZone": {
+          "type": "integer",
+          "format": "int32",
+          "description": "Maximum allowed number of ResourceRecordSets per zone in the project."
+        }
+      },
+      "type": "object",
+      "id": "Quota"
+    },
+    "DnsKey": {
+      "description": "A DNSSEC key pair.",
+      "properties": {
+        "type": {
+          "description": "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.",
+          "enum": [
+            "keySigning",
+            "zoneSigning"
+          ],
+          "enumDescriptions": [
+            "",
+            ""
+          ],
+          "type": "string"
+        },
+        "publicKey": {
+          "description": "Base64 encoded public half of this key. Output only.",
+          "type": "string"
+        },
+        "creationTime": {
+          "description": "The time that this resource was created in the control plane. This is in RFC3339 text format. Output only.",
+          "type": "string"
+        },
+        "description": {
+          "description": "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.",
+          "type": "string"
+        },
+        "keyTag": {
+          "type": "integer",
+          "description": "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.",
+          "format": "int32"
+        },
+        "algorithm": {
+          "enumDescriptions": [
+            "",
+            "",
+            "",
+            "",
+            ""
+          ],
+          "type": "string",
+          "enum": [
+            "rsasha1",
+            "rsasha256",
+            "rsasha512",
+            "ecdsap256sha256",
+            "ecdsap384sha384"
+          ],
+          "description": "String mnemonic specifying the DNSSEC algorithm of this key. Immutable after creation time."
+        },
+        "id": {
+          "type": "string",
+          "description": "Unique identifier for the resource; defined by the server (output only)."
+        },
+        "kind": {
+          "default": "dns#dnsKey",
+          "type": "string"
+        },
+        "digests": {
+          "type": "array",
+          "description": "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.",
+          "items": {
+            "$ref": "DnsKeyDigest"
+          }
+        },
+        "isActive": {
+          "description": "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.",
+          "type": "boolean"
+        },
+        "keyLength": {
+          "description": "Length of the key in bits. Specified at creation time then immutable.",
+          "format": "uint32",
+          "type": "integer"
+        }
+      },
+      "type": "object",
+      "id": "DnsKey"
+    },
+    "RRSetRoutingPolicyGeoPolicyGeoPolicyItem": {
+      "type": "object",
+      "id": "RRSetRoutingPolicyGeoPolicyGeoPolicyItem",
+      "properties": {
+        "location": {
+          "type": "string",
+          "description": "The geo-location granularity is a GCP region. This location string should correspond to a GCP region. e.g \"us-east1\", \"southamerica-east1\", \"asia-east1\", etc."
+        },
+        "signatureRrdatas": {
+          "description": "DNSSEC generated signatures for the above geo_rrdata.",
+          "type": "array",
+          "items": {
+            "type": "string"
+          }
+        },
+        "rrdatas": {
+          "items": {
+            "type": "string"
+          },
+          "type": "array"
+        },
+        "kind": {
+          "default": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem",
+          "type": "string"
+        }
+      }
+    },
+    "ManagedZonePrivateVisibilityConfigNetwork": {
+      "type": "object",
+      "id": "ManagedZonePrivateVisibilityConfigNetwork",
+      "properties": {
+        "kind": {
+          "default": "dns#managedZonePrivateVisibilityConfigNetwork",
+          "type": "string"
+        },
+        "networkUrl": {
+          "description": "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}",
+          "type": "string"
+        }
+      }
+    },
+    "RRSetRoutingPolicyWrrPolicyWrrPolicyItem": {
+      "type": "object",
+      "properties": {
+        "kind": {
+          "default": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem",
+          "type": "string"
+        },
+        "weight": {
+          "type": "number",
+          "description": "The weight corresponding to this subset of rrdata. When multiple WeightedRoundRobinPolicyItems are configured, the probability of returning an rrset is proportional to its weight relative to the sum of weights configured for all items. This weight should be a decimal in the range [0,1].",
+          "format": "double"
+        },
+        "rrdatas": {
+          "items": {
+            "type": "string"
+          },
+          "type": "array"
+        },
+        "signatureRrdatas": {
+          "items": {
+            "type": "string"
+          },
+          "type": "array",
+          "description": "DNSSEC generated signatures for the above wrr_rrdata."
+        }
+      },
+      "id": "RRSetRoutingPolicyWrrPolicyWrrPolicyItem"
+    },
+    "DnsKeySpec": {
+      "properties": {
+        "keyLength": {
+          "type": "integer",
+          "description": "Length of the keys in bits.",
+          "format": "uint32"
+        },
+        "keyType": {
+          "type": "string",
+          "enum": [
+            "keySigning",
+            "zoneSigning"
+          ],
+          "description": "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.",
+          "enumDescriptions": [
+            "",
+            ""
+          ]
+        },
+        "kind": {
+          "default": "dns#dnsKeySpec",
+          "type": "string"
+        },
+        "algorithm": {
+          "description": "String mnemonic specifying the DNSSEC algorithm of this key.",
+          "enum": [
+            "rsasha1",
+            "rsasha256",
+            "rsasha512",
+            "ecdsap256sha256",
+            "ecdsap384sha384"
+          ],
+          "enumDescriptions": [
+            "",
+            "",
+            "",
+            "",
+            ""
+          ],
+          "type": "string"
+        }
+      },
+      "description": "Parameters for DnsKey key generation. Used for generating initial keys for a new ManagedZone and as default when adding a new DnsKey.",
+      "id": "DnsKeySpec",
+      "type": "object"
+    },
+    "ResponseHeader": {
+      "description": "Elements common to every response.",
+      "type": "object",
+      "id": "ResponseHeader",
+      "properties": {
+        "operationId": {
+          "description": "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).",
+          "type": "string"
+        }
+      }
+    },
+    "PoliciesUpdateResponse": {
+      "id": "PoliciesUpdateResponse",
+      "properties": {
+        "header": {
+          "$ref": "ResponseHeader"
+        },
+        "policy": {
+          "$ref": "Policy"
+        }
+      },
+      "type": "object"
+    },
+    "Project": {
+      "properties": {
+        "kind": {
+          "default": "dns#project",
+          "type": "string"
+        },
+        "id": {
+          "type": "string",
+          "description": "User assigned unique identifier for the resource (output only)."
+        },
+        "quota": {
+          "$ref": "Quota",
+          "description": "Quotas assigned to this project (output only)."
+        },
+        "number": {
+          "type": "string",
+          "format": "uint64",
+          "description": "Unique numeric identifier for the resource; defined by the server (output only)."
+        }
+      },
+      "type": "object",
+      "id": "Project",
+      "description": "A project resource. The project is a top level container for resources including Cloud DNS ManagedZones. Projects can be created only in the APIs console."
+    },
+    "ManagedZoneForwardingConfig": {
+      "id": "ManagedZoneForwardingConfig",
+      "type": "object",
+      "properties": {
+        "targetNameServers": {
+          "type": "array",
+          "items": {
+            "$ref": "ManagedZoneForwardingConfigNameServerTarget"
+          },
+          "description": "List of target name servers to forward to. Cloud DNS will select the best available name server if more than one target is given."
+        },
+        "kind": {
+          "type": "string",
+          "default": "dns#managedZoneForwardingConfig"
+        }
+      }
+    },
+    "Change": {
+      "properties": {
+        "kind": {
+          "default": "dns#change",
+          "type": "string"
+        },
+        "status": {
+          "enumDescriptions": [
+            "",
+            ""
+          ],
+          "type": "string",
+          "description": "Status of the operation (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.",
+          "enum": [
+            "pending",
+            "done"
+          ]
+        },
+        "id": {
+          "description": "Unique identifier for the resource; defined by the server (output only).",
+          "type": "string"
+        },
+        "additions": {
+          "type": "array",
+          "description": "Which ResourceRecordSets to add?",
+          "items": {
+            "$ref": "ResourceRecordSet"
+          }
+        },
+        "startTime": {
+          "description": "The time that this operation was started by the server (output only). This is in RFC3339 text format.",
+          "type": "string"
+        },
+        "deletions": {
+          "items": {
+            "$ref": "ResourceRecordSet"
+          },
+          "type": "array",
+          "description": "Which ResourceRecordSets to remove? Must match existing data exactly."
+        },
+        "isServing": {
+          "type": "boolean",
+          "description": "If the DNS queries for the zone will be served."
+        }
+      },
+      "id": "Change",
+      "type": "object",
+      "description": "A Change represents a set of ResourceRecordSet additions and deletions applied atomically to a ManagedZone. ResourceRecordSets within a ManagedZone are modified by creating a new Change element in the Changes collection. In turn the Changes collection also records the past modifications to the ResourceRecordSets in a ManagedZone. The current state of the ManagedZone is the sum effect of applying all Change elements in the Changes collection in sequence."
+    },
+    "PoliciesListResponse": {
+      "type": "object",
+      "id": "PoliciesListResponse",
+      "properties": {
+        "nextPageToken": {
+          "description": "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.",
+          "type": "string"
+        },
+        "policies": {
+          "items": {
+            "$ref": "Policy"
+          },
+          "description": "The policy resources.",
+          "type": "array"
+        },
+        "header": {
+          "$ref": "ResponseHeader"
+        },
+        "kind": {
+          "description": "Type of resource.",
+          "type": "string",
+          "default": "dns#policiesListResponse"
+        }
+      }
+    },
+    "ManagedZonesListResponse": {
+      "type": "object",
+      "properties": {
+        "nextPageToken": {
+          "description": "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.",
+          "type": "string"
+        },
+        "kind": {
+          "description": "Type of resource.",
+          "type": "string",
+          "default": "dns#managedZonesListResponse"
+        },
+        "header": {
+          "$ref": "ResponseHeader"
+        },
+        "managedZones": {
+          "description": "The managed zone resources.",
+          "type": "array",
+          "items": {
+            "$ref": "ManagedZone"
+          }
+        }
+      },
+      "id": "ManagedZonesListResponse"
+    },
+    "ChangesListResponse": {
+      "properties": {
+        "kind": {
+          "type": "string",
+          "default": "dns#changesListResponse",
+          "description": "Type of resource."
+        },
+        "header": {
+          "$ref": "ResponseHeader"
+        },
+        "changes": {
+          "description": "The requested changes.",
+          "type": "array",
+          "items": {
+            "$ref": "Change"
+          }
+        },
+        "nextPageToken": {
+          "type": "string",
+          "description": "The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your pagination token. In this way you can retrieve the complete contents of even very large collections one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of all elements returned will be an inconsistent view of the collection. There is no way to retrieve a \"snapshot\" of collections larger than the maximum page size."
+        }
+      },
+      "description": "The response to a request to enumerate Changes to a ResourceRecordSets collection.",
+      "id": "ChangesListResponse",
+      "type": "object"
+    },
+    "RRSetRoutingPolicyGeoPolicy": {
+      "properties": {
+        "failovers": {
+          "description": "If the health check for the primary target for a geo location returns an unhealthy status, the failover target is returned instead. This failover configuration is not mandatory. If a failover is not provided, the primary target won't be healthchecked - we'll return the primarily configured rrdata irrespective of whether it is healthy or not.",
+          "type": "array",
+          "items": {
+            "$ref": "RRSetRoutingPolicyGeoPolicyGeoPolicyItem"
+          }
+        },
+        "kind": {
+          "type": "string",
+          "default": "dns#rRSetRoutingPolicyGeoPolicy"
+        },
+        "items": {
+          "items": {
+            "$ref": "RRSetRoutingPolicyGeoPolicyGeoPolicyItem"
+          },
+          "description": "The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead.",
+          "type": "array"
+        }
+      },
+      "id": "RRSetRoutingPolicyGeoPolicy",
+      "type": "object"
+    },
+    "Operation": {
+      "description": "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.",
+      "id": "Operation",
+      "type": "object",
+      "properties": {
+        "status": {
+          "description": "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.",
+          "type": "string",
+          "enum": [
+            "pending",
+            "done"
+          ],
+          "enumDescriptions": [
+            "",
+            ""
+          ]
+        },
+        "dnsKeyContext": {
+          "$ref": "OperationDnsKeyContext",
+          "description": "Only populated if the operation targeted a DnsKey (output only)."
+        },
+        "zoneContext": {
+          "description": "Only populated if the operation targeted a ManagedZone (output only).",
+          "$ref": "OperationManagedZoneContext"
+        },
+        "user": {
+          "description": "User who requested the operation, for example: user@example.com. cloud-dns-system for operations automatically done by the system. (output only)",
+          "type": "string"
+        },
+        "kind": {
+          "type": "string",
+          "default": "dns#operation"
+        },
+        "id": {
+          "type": "string",
+          "description": "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)"
+        },
+        "type": {
+          "type": "string",
+          "description": "Type of the operation. Operations include insert, update, and delete (output only)."
+        },
+        "startTime": {
+          "description": "The time that this operation was started by the server. This is in RFC3339 text format (output only).",
+          "type": "string"
+        }
+      }
+    },
+    "Policy": {
+      "id": "Policy",
+      "description": "A policy is a collection of DNS rules applied to one or more Virtual Private Cloud resources.",
+      "properties": {
+        "alternativeNameServerConfig": {
+          "$ref": "PolicyAlternativeNameServerConfig",
+          "description": "Sets an alternative name server for the associated networks. When specified, all DNS queries are forwarded to a name server that you choose. Names such as .internal are not available when an alternative name server is specified."
+        },
+        "kind": {
+          "type": "string",
+          "default": "dns#policy"
+        },
+        "description": {
+          "type": "string",
+          "description": "A mutable string of at most 1024 characters associated with this resource for the user's convenience. Has no effect on the policy's function."
+        },
+        "networks": {
+          "items": {
+            "$ref": "PolicyNetwork"
+          },
+          "description": "List of network names specifying networks to which this policy is applied.",
+          "type": "array"
+        },
+        "enableLogging": {
+          "description": "Controls whether logging is enabled for the networks bound to this policy. Defaults to no logging if not set.",
+          "type": "boolean"
+        },
+        "id": {
+          "description": "Unique identifier for the resource; defined by the server (output only).",
+          "type": "string",
+          "format": "uint64"
+        },
+        "enableInboundForwarding": {
+          "type": "boolean",
+          "description": "Allows networks bound to this policy to receive DNS queries sent by VMs or applications over VPN connections. When enabled, a virtual IP address will be allocated from each of the sub-networks that are bound to this policy."
+        },
+        "name": {
+          "type": "string",
+          "description": "User assigned name for this policy."
+        }
+      },
+      "type": "object"
+    },
+    "ManagedZonePrivateVisibilityConfig": {
+      "type": "object",
+      "id": "ManagedZonePrivateVisibilityConfig",
+      "properties": {
+        "kind": {
+          "default": "dns#managedZonePrivateVisibilityConfig",
+          "type": "string"
+        },
+        "networks": {
+          "description": "The list of VPC networks that can see this zone.",
+          "items": {
+            "$ref": "ManagedZonePrivateVisibilityConfigNetwork"
+          },
+          "type": "array"
+        }
+      }
+    },
+    "ManagedZonePeeringConfigTargetNetwork": {
+      "properties": {
+        "networkUrl": {
+          "type": "string",
+          "description": "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}"
+        },
+        "kind": {
+          "default": "dns#managedZonePeeringConfigTargetNetwork",
+          "type": "string"
+        },
+        "deactivateTime": {
+          "type": "string",
+          "description": "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."
+        }
+      },
+      "id": "ManagedZonePeeringConfigTargetNetwork",
+      "type": "object"
+    },
+    "RRSetRoutingPolicyWrrPolicy": {
+      "id": "RRSetRoutingPolicyWrrPolicy",
+      "properties": {
+        "kind": {
+          "type": "string",
+          "default": "dns#rRSetRoutingPolicyWrrPolicy"
+        },
+        "items": {
+          "items": {
+            "$ref": "RRSetRoutingPolicyWrrPolicyWrrPolicyItem"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "DnsKeyDigest": {
+      "id": "DnsKeyDigest",
+      "properties": {
+        "type": {
+          "type": "string",
+          "description": "Specifies the algorithm used to calculate this digest.",
+          "enum": [
+            "sha1",
+            "sha256",
+            "sha384"
+          ],
+          "enumDescriptions": [
+            "",
+            "",
+            ""
+          ]
+        },
+        "digest": {
+          "description": "The base-16 encoded bytes of this digest. Suitable for use in a DS resource record.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "ManagedZoneForwardingConfigNameServerTarget": {
+      "properties": {
+        "kind": {
+          "default": "dns#managedZoneForwardingConfigNameServerTarget",
+          "type": "string"
+        },
+        "forwardingPath": {
+          "enum": [
+            "default",
+            "private"
+          ],
+          "enumDescriptions": [
+            "Cloud DNS will make forwarding decision based on address ranges, i.e. RFC1918 addresses forward to the target through the VPC and non-RFC1918 addresses will forward to the target through the Internet",
+            "Cloud DNS will always forward to this target through the VPC."
+          ],
+          "type": "string",
+          "description": "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."
+        },
+        "ipv4Address": {
+          "description": "IPv4 address of a target name server.",
+          "type": "string"
+        }
+      },
+      "type": "object",
+      "id": "ManagedZoneForwardingConfigNameServerTarget"
+    },
+    "ManagedZone": {
+      "description": "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.",
+      "type": "object",
+      "id": "ManagedZone",
+      "properties": {
+        "nameServers": {
+          "items": {
+            "type": "string"
+          },
+          "description": "Delegate your managed_zone to these virtual name servers; defined by the server (output only)",
+          "type": "array"
+        },
+        "peeringConfig": {
+          "$ref": "ManagedZonePeeringConfig",
+          "description": "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."
+        },
+        "privateVisibilityConfig": {
+          "description": "For privately visible zones, the set of Virtual Private Cloud resources that the zone is visible from.",
+          "$ref": "ManagedZonePrivateVisibilityConfig"
+        },
+        "nameServerSet": {
+          "description": "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.",
+          "type": "string"
+        },
+        "name": {
+          "description": "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.",
+          "type": "string"
+        },
+        "description": {
+          "description": "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.",
+          "type": "string"
+        },
+        "dnsName": {
+          "description": "The DNS name of this managed zone, for instance \"example.com.\".",
+          "type": "string"
+        },
+        "visibility": {
+          "enumDescriptions": [
+            "",
+            ""
+          ],
+          "type": "string",
+          "enum": [
+            "public",
+            "private"
+          ],
+          "description": "The zone's visibility: public zones are exposed to the Internet, while private zones are visible only to Virtual Private Cloud resources."
+        },
+        "reverseLookupConfig": {
+          "$ref": "ManagedZoneReverseLookupConfig",
+          "description": "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."
+        },
+        "id": {
+          "description": "Unique identifier for the resource; defined by the server (output only)",
+          "format": "uint64",
+          "type": "string"
+        },
+        "forwardingConfig": {
+          "description": "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.",
+          "$ref": "ManagedZoneForwardingConfig"
+        },
+        "labels": {
+          "type": "object",
+          "additionalProperties": {
+            "type": "string"
+          },
+          "description": "User labels."
+        },
+        "kind": {
+          "default": "dns#managedZone",
+          "type": "string"
+        },
+        "dnssecConfig": {
+          "description": "DNSSEC configuration.",
+          "$ref": "ManagedZoneDnsSecConfig"
+        },
+        "creationTime": {
+          "type": "string",
+          "description": "The time that this resource was created on the server. This is in RFC3339 text format. Output only."
+        }
+      }
+    },
+    "ManagedZoneOperationsListResponse": {
+      "id": "ManagedZoneOperationsListResponse",
+      "properties": {
+        "nextPageToken": {
+          "description": "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.",
+          "type": "string"
+        },
+        "operations": {
+          "description": "The operation resources.",
+          "items": {
+            "$ref": "Operation"
+          },
+          "type": "array"
+        },
+        "header": {
+          "$ref": "ResponseHeader"
+        },
+        "kind": {
+          "type": "string",
+          "default": "dns#managedZoneOperationsListResponse"
+        }
+      },
+      "type": "object"
+    },
+    "ManagedZonePeeringConfig": {
+      "properties": {
+        "kind": {
+          "type": "string",
+          "default": "dns#managedZonePeeringConfig"
+        },
+        "targetNetwork": {
+          "description": "The network with which to peer.",
+          "$ref": "ManagedZonePeeringConfigTargetNetwork"
+        }
+      },
+      "id": "ManagedZonePeeringConfig",
+      "type": "object"
+    },
+    "RRSetRoutingPolicy": {
+      "description": "A RRSetRoutingPolicy represents ResourceRecordSet data that will be returned dynamically with the response varying based on configured properties such as geolocation or by weighted random selection.",
+      "type": "object",
+      "properties": {
+        "wrrPolicy": {
+          "$ref": "RRSetRoutingPolicyWrrPolicy"
+        },
+        "kind": {
+          "default": "dns#rRSetRoutingPolicy",
+          "type": "string"
+        },
+        "geoPolicy": {
+          "$ref": "RRSetRoutingPolicyGeoPolicy"
+        }
+      },
+      "id": "RRSetRoutingPolicy"
+    },
+    "PoliciesPatchResponse": {
+      "id": "PoliciesPatchResponse",
+      "type": "object",
+      "properties": {
+        "policy": {
+          "$ref": "Policy"
+        },
+        "header": {
+          "$ref": "ResponseHeader"
+        }
+      }
+    },
+    "ResourceRecordSet": {
+      "properties": {
+        "rrdatas": {
+          "description": "As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples.",
+          "type": "array",
+          "items": {
+            "type": "string"
+          }
+        },
+        "routingPolicy": {
+          "$ref": "RRSetRoutingPolicy",
+          "description": "Configures dynamic query responses based on geo location of querying user or a weighted round robin based routing policy. A ResourceRecordSet should only have either rrdata (static) or routing_policy(dynamic). An error is returned otherwise."
+        },
+        "signatureRrdatas": {
+          "description": "As defined in RFC 4034 (section 3.2).",
+          "items": {
+            "type": "string"
+          },
+          "type": "array"
+        },
+        "name": {
+          "type": "string",
+          "description": "For example, www.example.com."
+        },
+        "kind": {
+          "type": "string",
+          "default": "dns#resourceRecordSet"
+        },
+        "ttl": {
+          "type": "integer",
+          "description": "Number of seconds that this ResourceRecordSet can be cached by resolvers.",
+          "format": "int32"
+        },
+        "type": {
+          "type": "string",
+          "description": "The identifier of a supported record type. See the list of Supported DNS record types."
+        }
+      },
+      "type": "object",
+      "id": "ResourceRecordSet",
+      "description": "A unit of data that will be returned by the DNS servers."
+    },
+    "PolicyNetwork": {
+      "type": "object",
+      "id": "PolicyNetwork",
+      "properties": {
+        "kind": {
+          "type": "string",
+          "default": "dns#policyNetwork"
+        },
+        "networkUrl": {
+          "description": "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}",
+          "type": "string"
+        }
+      }
+    },
+    "PolicyAlternativeNameServerConfig": {
+      "properties": {
+        "kind": {
+          "type": "string",
+          "default": "dns#policyAlternativeNameServerConfig"
+        },
+        "targetNameServers": {
+          "items": {
+            "$ref": "PolicyAlternativeNameServerConfigTargetNameServer"
+          },
+          "description": "Sets an alternative name server for the associated networks. When specified, all DNS queries are forwarded to a name server that you choose. Names such as .internal are not available when an alternative name server is specified.",
+          "type": "array"
+        }
+      },
+      "id": "PolicyAlternativeNameServerConfig",
+      "type": "object"
+    },
+    "OperationManagedZoneContext": {
+      "properties": {
+        "newValue": {
+          "description": "The post-operation ManagedZone resource.",
+          "$ref": "ManagedZone"
+        },
+        "oldValue": {
+          "description": "The pre-operation ManagedZone resource.",
+          "$ref": "ManagedZone"
+        }
+      },
+      "type": "object",
+      "id": "OperationManagedZoneContext"
+    },
+    "ResourceRecordSetsListResponse": {
+      "properties": {
+        "kind": {
+          "description": "Type of resource.",
+          "default": "dns#resourceRecordSetsListResponse",
+          "type": "string"
+        },
+        "header": {
+          "$ref": "ResponseHeader"
+        },
+        "nextPageToken": {
+          "type": "string",
+          "description": "The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your pagination token. In this way you can retrieve the complete contents of even very large collections one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of all elements returned will be an inconsistent view of the collection. There is no way to retrieve a consistent snapshot of a collection larger than the maximum page size."
+        },
+        "rrsets": {
+          "items": {
+            "$ref": "ResourceRecordSet"
+          },
+          "type": "array",
+          "description": "The resource record set resources."
+        }
+      },
+      "id": "ResourceRecordSetsListResponse",
+      "type": "object"
+    },
+    "ManagedZoneReverseLookupConfig": {
+      "properties": {
+        "kind": {
+          "default": "dns#managedZoneReverseLookupConfig",
+          "type": "string"
+        }
+      },
+      "type": "object",
+      "id": "ManagedZoneReverseLookupConfig"
+    },
+    "PolicyAlternativeNameServerConfigTargetNameServer": {
+      "properties": {
+        "kind": {
+          "type": "string",
+          "default": "dns#policyAlternativeNameServerConfigTargetNameServer"
+        },
+        "forwardingPath": {
+          "type": "string",
+          "enumDescriptions": [
+            "Cloud DNS will make forwarding decision based on address ranges, i.e. RFC1918 addresses forward to the target through the VPC and non-RFC1918 addresses will forward to the target through the Internet",
+            "Cloud DNS will always forward to this target through the VPC."
+          ],
+          "enum": [
+            "default",
+            "private"
+          ],
+          "description": "Forwarding path for this TargetNameServer. 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."
+        },
+        "ipv4Address": {
+          "description": "IPv4 address to forward to.",
+          "type": "string"
+        }
+      },
+      "id": "PolicyAlternativeNameServerConfigTargetNameServer",
+      "type": "object"
+    }
+  },
+  "batchPath": "batch",
+  "mtlsRootUrl": "https://dns.mtls.googleapis.com/",
+  "name": "dns",
+  "icons": {
+    "x16": "http://www.google.com/images/icons/product/search-16.gif",
+    "x32": "http://www.google.com/images/icons/product/search-32.gif"
+  },
+  "id": "dns:v1",
+  "revision": "20201013",
+  "protocol": "rest",
+  "kind": "discovery#restDescription",
+  "parameters": {
+    "callback": {
+      "description": "JSONP",
+      "type": "string",
+      "location": "query"
+    },
+    "access_token": {
+      "type": "string",
+      "location": "query",
+      "description": "OAuth access token."
+    },
+    "key": {
+      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
+      "type": "string",
+      "location": "query"
+    },
+    "upload_protocol": {
+      "type": "string",
+      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
+      "location": "query"
+    },
+    "alt": {
+      "description": "Data format for response.",
+      "type": "string",
+      "location": "query",
+      "enum": [
+        "json",
+        "media",
+        "proto"
+      ],
+      "default": "json",
+      "enumDescriptions": [
+        "Responses with Content-Type of application/json",
+        "Media download with context-dependent Content-Type",
+        "Responses with Content-Type of application/x-protobuf"
+      ]
+    },
+    "uploadType": {
+      "location": "query",
+      "type": "string",
+      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")."
+    },
+    "fields": {
+      "description": "Selector specifying which fields to include in a partial response.",
+      "type": "string",
+      "location": "query"
+    },
+    "prettyPrint": {
+      "default": "true",
+      "description": "Returns response with indentations and line breaks.",
+      "type": "boolean",
+      "location": "query"
+    },
+    "oauth_token": {
+      "location": "query",
+      "description": "OAuth 2.0 token for the current user.",
+      "type": "string"
+    },
+    "quotaUser": {
+      "location": "query",
+      "type": "string",
+      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters."
+    },
+    "$.xgafv": {
+      "type": "string",
+      "enumDescriptions": [
+        "v1 error format",
+        "v2 error format"
+      ],
+      "description": "V1 error format.",
+      "location": "query",
+      "enum": [
+        "1",
+        "2"
+      ]
+    }
+  },
+  "title": "Cloud DNS API",
+  "canonicalName": "Dns",
+  "auth": {
+    "oauth2": {
+      "scopes": {
+        "https://www.googleapis.com/auth/cloud-platform": {
+          "description": "View and manage your data across Google Cloud Platform services"
+        },
+        "https://www.googleapis.com/auth/ndev.clouddns.readonly": {
+          "description": "View your DNS records hosted by Google Cloud DNS"
+        },
+        "https://www.googleapis.com/auth/ndev.clouddns.readwrite": {
+          "description": "View and manage your DNS records hosted by Google Cloud DNS"
+        },
+        "https://www.googleapis.com/auth/cloud-platform.read-only": {
+          "description": "View your data across Google Cloud Platform services"
+        }
+      }
+    }
+  },
+  "baseUrl": "https://dns.googleapis.com/",
+  "version": "v1",
+  "discoveryVersion": "v1",
+  "ownerName": "Google",
+  "description": "",
+  "documentationLink": "https://cloud.google.com/dns/docs",
+  "fullyEncodeReservedExpansion": true
+}