<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_v2beta1.html">Cloud DNS API</a> . <a href="dns_v2beta1.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;id&quot;: &quot;A String&quot;, # User assigned unique identifier for the resource (output only).
    &quot;quota&quot;: { # Limits associated with a Project. # Quotas assigned to this project (output only).
      &quot;totalRrdataSizePerChange&quot;: 42, # Maximum allowed size for total rrdata in one ChangesCreateRequest in
          # bytes.
      &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;kind&quot;: &quot;dns#quota&quot;,
      &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;networksPerPolicy&quot;: 42, # Maximum allowed number of networks per policy.
      &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;targetNameServersPerPolicy&quot;: 42, # Maximum allowed number of alternative target name servers per policy.
      &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;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;policies&quot;: 42, # Maximum allowed number of policies per project.
      &quot;rrsetAdditionsPerChange&quot;: 42, # Maximum allowed number of ResourceRecordSets to add per
          # ChangesCreateRequest.
      &quot;resourceRecordsPerRrset&quot;: 42, # Maximum allowed number of ResourceRecords per ResourceRecordSet.
      &quot;managedZonesPerNetwork&quot;: 42, # Maximum allowed number of managed zones which can be attached to a
          # network.
    },
    &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;,
  }</pre>
</div>

</body></html>