<html><body>
<style>

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

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

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

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

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

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

pre {
  margin-top: 0.5em;
}

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

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

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

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

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

</style>

<h1><a href="dns_v1.html">Cloud DNS API</a> . <a href="dns_v1.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">Fetch 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>Fetch 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.
    &quot;number&quot;: &quot;A String&quot;, # Unique numeric identifier for the resource; defined by the server (output only).
    &quot;kind&quot;: &quot;dns#project&quot;,
    &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;rrsetsPerManagedZone&quot;: 42, # Maximum allowed number of ResourceRecordSets per zone in the project.
      &quot;managedZones&quot;: 42, # Maximum allowed number of managed zones in the project.
      &quot;networksPerPolicy&quot;: 42, # Maximum allowed number of networks per policy.
      &quot;targetNameServersPerManagedZone&quot;: 42, # Maximum allowed number of target name servers per managed forwarding zone.
      &quot;resourceRecordsPerRrset&quot;: 42, # Maximum allowed number of ResourceRecords per ResourceRecordSet.
      &quot;rrsetDeletionsPerChange&quot;: 42, # Maximum allowed number of ResourceRecordSets to delete per ChangesCreateRequest.
      &quot;networksPerManagedZone&quot;: 42, # Maximum allowed number of networks to which a privately scoped zone can be attached.
      &quot;kind&quot;: &quot;dns#quota&quot;,
      &quot;targetNameServersPerPolicy&quot;: 42, # Maximum allowed number of alternative target name servers per policy.
      &quot;managedZonesPerNetwork&quot;: 42, # Maximum allowed number of managed zones which can be attached to a network.
      &quot;rrsetAdditionsPerChange&quot;: 42, # Maximum allowed number of ResourceRecordSets to add per ChangesCreateRequest.
      &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;kind&quot;: &quot;dns#dnsKeySpec&quot;,
          &quot;keyType&quot;: &quot;A String&quot;, # Specifies whether this is a key signing key (KSK) or a zone signing key (ZSK). Key signing keys have the Secure Entry Point flag set and, when active, will only be used to sign resource record sets of type DNSKEY. Zone signing keys do not have the Secure Entry Point flag set and will be used to sign all other types of resource record sets.
          &quot;keyLength&quot;: 42, # Length of the keys in bits.
        },
      ],
      &quot;totalRrdataSizePerChange&quot;: 42, # Maximum allowed size for total rrdata in one ChangesCreateRequest in bytes.
      &quot;policies&quot;: 42, # Maximum allowed number of policies per project.
    },
    &quot;id&quot;: &quot;A String&quot;, # User assigned unique identifier for the resource (output only).
  }</pre>
</div>

</body></html>