<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="#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="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;quota&quot;: { # Limits associated with a Project. # Quotas assigned to this project (output only).
      &quot;networksPerManagedZone&quot;: 42, # Maximum allowed number of networks to which a privately scoped zone can be
          # attached.
      &quot;managedZones&quot;: 42, # Maximum allowed number of managed zones in the project.
      &quot;dnsKeysPerManagedZone&quot;: 42, # Maximum allowed number of DnsKeys per ManagedZone.
      &quot;rrsetDeletionsPerChange&quot;: 42, # Maximum allowed number of ResourceRecordSets to delete per
          # ChangesCreateRequest.
      &quot;resourceRecordsPerRrset&quot;: 42, # Maximum allowed number of ResourceRecords per ResourceRecordSet.
      &quot;policies&quot;: 42, # Maximum allowed number of policies per project.
      &quot;networksPerPolicy&quot;: 42, # Maximum allowed number of networks per policy.
      &quot;kind&quot;: &quot;dns#quota&quot;,
      &quot;targetNameServersPerManagedZone&quot;: 42, # Maximum allowed number of target name servers per managed forwarding zone.
      &quot;rrsetAdditionsPerChange&quot;: 42, # Maximum allowed number of ResourceRecordSets to add per
          # ChangesCreateRequest.
      &quot;rrsetsPerManagedZone&quot;: 42, # Maximum allowed number of ResourceRecordSets per zone in the project.
      &quot;managedZonesPerNetwork&quot;: 42, # Maximum allowed number of managed zones which can be attached to a
          # network.
      &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;keyLength&quot;: 42, # Length of the keys in bits.
          &quot;keyType&quot;: &quot;A String&quot;, # Specifies whether this is a key signing key (KSK) or a zone signing key
              # (ZSK). Key signing keys have the Secure Entry Point flag set and, when
              # active, will only be used to sign resource record sets of type DNSKEY.
              # Zone signing keys do not have the Secure Entry Point flag set and will be
              # used to sign all other types of resource record sets.
          &quot;algorithm&quot;: &quot;A String&quot;, # String mnemonic specifying the DNSSEC algorithm of this key.
          &quot;kind&quot;: &quot;dns#dnsKeySpec&quot;,
        },
      ],
      &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;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).
  }</pre>
</div>

</body></html>