<html><body>
<style>

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

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

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

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

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

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

pre {
  margin-top: 0.5em;
}

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

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

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

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

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

</style>

<h1><a href="dns_v1beta2.html">Cloud DNS API</a> . <a href="dns_v1beta2.projects.html">projects</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#get">get(project, clientOperationId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Fetches the representation of an existing Project.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

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

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

Returns:
  An object of the form:

    { # 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. Next tag: 7.
  &quot;id&quot;: &quot;A String&quot;, # User assigned unique identifier for the resource (output only).
  &quot;kind&quot;: &quot;dns#project&quot;,
  &quot;number&quot;: &quot;A String&quot;, # Unique numeric identifier for the resource; defined by the server (output only).
  &quot;quota&quot;: { # Limits associated with a Project. # Quotas assigned to this project (output only).
    &quot;dnsKeysPerManagedZone&quot;: 42, # Maximum allowed number of DnsKeys per ManagedZone.
    &quot;gkeClustersPerManagedZone&quot;: 42, # Maximum allowed number of GKE clusters to which a privately scoped zone can be attached.
    &quot;gkeClustersPerResponsePolicy&quot;: 42, # Maximum allowed number of GKE clusters per response policy.
    &quot;itemsPerRoutingPolicy&quot;: 42, # Maximum allowed number of items per routing policy.
    &quot;kind&quot;: &quot;dns#quota&quot;,
    &quot;managedZones&quot;: 42, # Maximum allowed number of managed zones in the project.
    &quot;managedZonesPerGkeCluster&quot;: 42, # Maximum allowed number of managed zones which can be attached to a GKE cluster.
    &quot;managedZonesPerNetwork&quot;: 42, # Maximum allowed number of managed zones which can be attached to a network.
    &quot;networksPerManagedZone&quot;: 42, # Maximum allowed number of networks to which a privately scoped zone can be attached.
    &quot;networksPerPolicy&quot;: 42, # Maximum allowed number of networks per policy.
    &quot;policies&quot;: 42, # Maximum allowed number of policies per project.
    &quot;resourceRecordsPerRrset&quot;: 42, # Maximum allowed number of ResourceRecords per ResourceRecordSet.
    &quot;responsePolicyRulesPerResponsePolicy&quot;: 42, # Maximum allowed number of rules per response policy.
    &quot;rrsetAdditionsPerChange&quot;: 42, # Maximum allowed number of ResourceRecordSets to add per ChangesCreateRequest.
    &quot;rrsetDeletionsPerChange&quot;: 42, # Maximum allowed number of ResourceRecordSets to delete per ChangesCreateRequest.
    &quot;rrsetsPerManagedZone&quot;: 42, # Maximum allowed number of ResourceRecordSets per zone in the project.
    &quot;targetNameServersPerManagedZone&quot;: 42, # Maximum allowed number of target name servers per managed forwarding zone.
    &quot;targetNameServersPerPolicy&quot;: 42, # Maximum allowed number of alternative target name servers per policy.
    &quot;totalRrdataSizePerChange&quot;: 42, # Maximum allowed size for total rrdata in one ChangesCreateRequest in bytes.
    &quot;whitelistedKeySpecs&quot;: [ # DNSSEC algorithm and key length types that can be used for DnsKeys.
      { # Parameters for DnsKey key generation. Used for generating initial keys for a new ManagedZone and as default when adding a new DnsKey.
        &quot;algorithm&quot;: &quot;A String&quot;, # String mnemonic specifying the DNSSEC algorithm of this key.
        &quot;keyLength&quot;: 42, # Length of the keys in bits.
        &quot;keyType&quot;: &quot;A String&quot;, # Specifies whether this is a key signing key (KSK) or a zone signing key (ZSK). Key signing keys have the Secure Entry Point flag set and, when active, are only used to sign resource record sets of type DNSKEY. Zone signing keys do not have the Secure Entry Point flag set and are used to sign all other types of resource record sets.
        &quot;kind&quot;: &quot;dns#dnsKeySpec&quot;,
      },
    ],
  },
}</pre>
</div>

</body></html>