<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">Google 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)</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)</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.

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.
    "quota": { # Limits associated with a Project. # Quotas assigned to this project (output only).
      "kind": "dns#quota", # Identifies what kind of resource this is. Value: the fixed string "dns#quota".
      "rrsetAdditionsPerChange": 42, # Maximum allowed number of ResourceRecordSets to add per ChangesCreateRequest.
      "totalRrdataSizePerChange": 42, # Maximum allowed size for total rrdata in one ChangesCreateRequest in bytes.
      "resourceRecordsPerRrset": 42, # Maximum allowed number of ResourceRecords per ResourceRecordSet.
      "dnsKeysPerManagedZone": 42, # Maximum allowed number of DnsKeys per ManagedZone.
      "rrsetsPerManagedZone": 42, # Maximum allowed number of ResourceRecordSets per zone in the project.
      "whitelistedKeySpecs": [ # 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.
          "keyType": "A String", # 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.
          "keyLength": 42, # Length of the keys in bits.
          "kind": "dns#dnsKeySpec", # Identifies what kind of resource this is. Value: the fixed string "dns#dnsKeySpec".
          "algorithm": "A String", # String mnemonic specifying the DNSSEC algorithm of this key.
        },
      ],
      "rrsetDeletionsPerChange": 42, # Maximum allowed number of ResourceRecordSets to delete per ChangesCreateRequest.
      "managedZones": 42, # Maximum allowed number of managed zones in the project.
    },
    "kind": "dns#project", # Identifies what kind of resource this is. Value: the fixed string "dns#project".
    "id": "A String", # User assigned unique identifier for the resource (output only).
    "number": "A String", # Unique numeric identifier for the resource; defined by the server (output only).
  }</pre>
</div>

</body></html>