REST Resource: projects.locations.registrations

Resource: Registration

The Registration resource facilitates managing and configuring domain name registrations.

To create a new Registration resource, find a suitable domain name by calling the registrations.searchDomains method with a query to see available domain name options. After choosing a name, call registrations.retrieveRegisterParameters to ensure availability and obtain information like pricing, which is needed to build a call to registrations.register.

JSON representation
{
  "name": string,
  "domainName": string,
  "createTime": string,
  "expireTime": string,
  "state": enum (State),
  "issues": [
    enum (Issue)
  ],
  "labels": {
    string: string,
    ...
  },
  "managementSettings": {
    object (ManagementSettings)
  },
  "dnsSettings": {
    object (DnsSettings)
  },
  "contactSettings": {
    object (ContactSettings)
  },
  "pendingContactSettings": {
    object (ContactSettings)
  },
  "supportedPrivacy": [
    enum (ContactPrivacy)
  ]
}
Fields
name

string

Output only. Name of the Registration resource, in the format projects/*/locations/*/registrations/<domainName>.

domainName

string

Required. Immutable. The domain name. Unicode domain names must be expressed in Punycode format.

createTime

string (Timestamp format)

Output only. The creation timestamp of the Registration resource.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

expireTime

string (Timestamp format)

Output only. The expiration timestamp of the Registration.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

state

enum (State)

Output only. The state of the Registration

issues[]

enum (Issue)

Output only. The set of issues with the Registration that require attention.

labels

map (key: string, value: string)

Set of labels associated with the Registration.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

managementSettings

object (ManagementSettings)

Settings for management of the Registration, including renewal, billing, and transfer. You cannot update these with the registrations.patch method. To update these settings, use the registrations.configureManagementSettings method.

dnsSettings

object (DnsSettings)

Settings controlling the DNS configuration of the Registration. You cannot update these with the registrations.patch method. To update these settings, use the registrations.configureDnsSettings method.

contactSettings

object (ContactSettings)

Required. Settings for contact information linked to the Registration. You cannot update these with the registrations.patch method. To update these settings, use the registrations.configureContactSettings method.

pendingContactSettings

object (ContactSettings)

Output only. Pending contact settings for the Registration. Updates to the contactSettings field that change its registrantContact or privacy fields require email confirmation by the registrantContact before taking effect. This field is set only if there are pending updates to the contactSettings that have not yet been confirmed. To confirm the changes, the registrantContact must follow the instructions in the email they receive.

supportedPrivacy[]

enum (ContactPrivacy)

Output only. Set of options for the contactSettings.privacy field that this Registration supports.

State

Possible states of a Registration.

Enums
STATE_UNSPECIFIED The state is undefined.
REGISTRATION_PENDING The domain is being registered.
REGISTRATION_FAILED The domain registration failed. You can delete resources in this state to allow registration to be retried.
ACTIVE The domain is registered and operational. The domain renews automatically as long as it remains in this state.
SUSPENDED The domain is suspended and inoperative. For more details, see the issues field.
EXPORTED The domain has been exported from Cloud Domains to Google Domains. You can no longer update it with this API, and information shown about it may be stale. Without further action, domains in this state expire at their expireTime. You can delete the resource after the expireTime has passed.

Issue

Possible issues with a Registration that require attention.

Enums
ISSUE_UNSPECIFIED The issue is undefined.
CONTACT_SUPPORT Contact the Cloud Support team to resolve a problem with this domain.
UNVERIFIED_EMAIL ICANN requires verification of the email address in the Registration's contactSettings.registrant_contact field. To verify the email address, follow the instructions in the email the registrantContact receives following registration. If you do not complete email verification within 15 days of registration, the domain is suspended. To resend the verification email, call registrations.configureContactSettings and provide the current registrantContact.email.

ManagementSettings

Defines renewal, billing, and transfer settings for a Registration.

JSON representation
{
  "renewalMethod": enum (RenewalMethod),
  "transferLockState": enum (TransferLockState)
}
Fields
renewalMethod

enum (RenewalMethod)

Output only. The renewal method for this Registration.

transferLockState

enum (TransferLockState)

Controls whether the domain can be transferred to another registrar.

RenewalMethod

Defines how the Registration is renewed.

Enums
RENEWAL_METHOD_UNSPECIFIED The renewal method is undefined.
AUTOMATIC_RENEWAL

The domain is automatically renewed each year .

To disable automatic renewals, export the domain by calling registrations.export .

MANUAL_RENEWAL

The domain must be explicitly renewed each year before its expireTime. This option is only available when the Registration is in state EXPORTED.

To manage the domain's current billing and renewal settings, go to Google Domains.

TransferLockState

Possible states of a Registration's transfer lock.

Enums
TRANSFER_LOCK_STATE_UNSPECIFIED The state is unspecified.
UNLOCKED The domain is unlocked and can be transferred to another registrar.
LOCKED The domain is locked and cannot be transferred to another registrar.

DnsSettings

Defines the DNS configuration of a Registration, including name servers, DNSSEC, and glue records.

JSON representation
{
  "glueRecords": [
    {
      object (GlueRecord)
    }
  ],

  // Union field dns_provider can be only one of the following:
  "customDns": {
    object (CustomDns)
  },
  "googleDomainsDns": {
    object (GoogleDomainsDns)
  }
  // End of list of possible types for union field dns_provider.
}
Fields
glueRecords[]

object (GlueRecord)

The list of glue records for this Registration. Commonly empty.

Union field dns_provider. The DNS provider of the registration. dns_provider can be only one of the following:
customDns

object (CustomDns)

An arbitrary DNS provider identified by its name servers.

googleDomainsDns

object (GoogleDomainsDns)

The free DNS zone provided by Google Domains.

CustomDns

Configuration for an arbitrary DNS provider.

JSON representation
{
  "nameServers": [
    string
  ],
  "dsRecords": [
    {
      object (DsRecord)
    }
  ]
}
Fields
nameServers[]

string

Required. A list of name servers that store the DNS zone for this domain. Each name server is a domain name, with Unicode domain names expressed in Punycode format.

dsRecords[]

object (DsRecord)

The list of DS records for this domain, which are used to enable DNSSEC. The domain's DNS provider can provide the values to set here. If this field is empty, DNSSEC is disabled.

DsRecord

Defines a Delegation Signer (DS) record, which is needed to enable DNSSEC for a domain. It contains a digest (hash) of a DNSKEY record that must be present in the domain's DNS zone.

JSON representation
{
  "keyTag": integer,
  "algorithm": enum (Algorithm),
  "digestType": enum (DigestType),
  "digest": string
}
Fields
keyTag

integer

The key tag of the record. Must be set in range 0 -- 65535.

algorithm

enum (Algorithm)

The algorithm used to generate the referenced DNSKEY.

digestType

enum (DigestType)

The hash function used to generate the digest of the referenced DNSKEY.

digest

string

The digest generated from the referenced DNSKEY.

Algorithm

List of algorithms used to create a DNSKEY. Certain algorithms are not supported for particular domains.

Enums
ALGORITHM_UNSPECIFIED The algorithm is unspecified.
DSA DSA/SHA1. Not recommended for new deployments.
ECC ECC. Not recommended for new deployments.
RSASHA1 RSA/SHA-1. Not recommended for new deployments.
DSANSEC3SHA1 DSA-NSEC3-SHA1. Not recommended for new deployments.
RSASHA1NSEC3SHA1 RSA/SHA1-NSEC3-SHA1. Not recommended for new deployments.
RSASHA256 RSA/SHA-256.
RSASHA512 RSA/SHA-512.
ECCGOST GOST R 34.10-2001.
ECDSAP256SHA256 ECDSA Curve P-256 with SHA-256.
ECDSAP384SHA384 ECDSA Curve P-384 with SHA-384.
ED25519 Ed25519.
ED448 Ed448.

DigestType

List of hash functions that may have been used to generate a digest of a DNSKEY.

Enums
DIGEST_TYPE_UNSPECIFIED The DigestType is unspecified.
SHA1 SHA-1. Not recommended for new deployments.
SHA256 SHA-256.
GOST3411 GOST R 34.11-94.
SHA384 SHA-384.

GoogleDomainsDns

Configuration for using the free DNS zone provided by Google Domains as a Registration's dns_provider. You cannot configure the DNS zone itself using the API. To configure the DNS zone, go to Google Domains.

JSON representation
{
  "nameServers": [
    string
  ],
  "dsState": enum (DsState),
  "dsRecords": [
    {
      object (DsRecord)
    }
  ]
}
Fields
nameServers[]

string

Output only. A list of name servers that store the DNS zone for this domain. Each name server is a domain name, with Unicode domain names expressed in Punycode format. This field is automatically populated with the name servers assigned to the Google Domains DNS zone.

dsState

enum (DsState)

Required. The state of DS records for this domain. Used to enable or disable automatic DNSSEC.

dsRecords[]

object (DsRecord)

Output only. The list of DS records published for this domain. The list is automatically populated when dsState is DS_RECORDS_PUBLISHED, otherwise it remains empty.

DsState

The publication state of DS records for a Registration.

Enums
DS_STATE_UNSPECIFIED DS state is unspecified.
DS_RECORDS_UNPUBLISHED DNSSEC is disabled for this domain. No DS records for this domain are published in the parent DNS zone.
DS_RECORDS_PUBLISHED DNSSEC is enabled for this domain. Appropriate DS records for this domain are published in the parent DNS zone. This option is valid only if the DNS zone referenced in the Registration's dns_provider field is already DNSSEC-signed.

GlueRecord

Defines a host on your domain that is a DNS name server for your domain and/or other domains. Glue records are a way of making the IP address of a name server known, even when it serves DNS queries for its parent domain. For example, when ns.example.com is a name server for example.com, the host ns.example.com must have a glue record to break the circular DNS reference.

JSON representation
{
  "hostName": string,
  "ipv4Addresses": [
    string
  ],
  "ipv6Addresses": [
    string
  ]
}
Fields
hostName

string

Required. Domain name of the host in Punycode format.

ipv4Addresses[]

string

List of IPv4 addresses corresponding to this host in the standard decimal format (e.g. 198.51.100.1). At least one of ipv4_address and ipv6_address must be set.

ipv6Addresses[]

string

List of IPv6 addresses corresponding to this host in the standard hexadecimal format (e.g. 2001:db8::). At least one of ipv4_address and ipv6_address must be set.

ContactSettings

Defines the contact information associated with a Registration.

ICANN requires all domain names to have associated contact information. The registrantContact is considered the domain's legal owner, and often the other contacts are identical.

JSON representation
{
  "privacy": enum (ContactPrivacy),
  "registrantContact": {
    object (Contact)
  },
  "adminContact": {
    object (Contact)
  },
  "technicalContact": {
    object (Contact)
  }
}
Fields
privacy

enum (ContactPrivacy)

Required. Privacy setting for the contacts associated with the Registration.

registrantContact

object (Contact)

Required. The registrant contact for the Registration.

Caution: Anyone with access to this email address, phone number, and/or postal address can take control of the domain.

Warning: For new Registrations, the registrant will receive an email confirmation that they must complete within 15 days to avoid domain suspension.

adminContact

object (Contact)

Required. The administrative contact for the Registration.

technicalContact

object (Contact)

Required. The technical contact for the Registration.

ContactPrivacy

Defines a set of possible contact privacy settings for a Registration.

ICANN maintains the WHOIS database, a publicly accessible mapping from domain name to contact information, and requires that each domain name have an entry. Choose from these options to control how much information in your ContactSettings is published.

Enums
CONTACT_PRIVACY_UNSPECIFIED The contact privacy settings are undefined.
PUBLIC_CONTACT_DATA All the data from ContactSettings is publicly available. When setting this option, you must also provide a PUBLIC_CONTACT_DATA_ACKNOWLEDGEMENT in the contactNotices field of the request.
PRIVATE_CONTACT_DATA None of the data from ContactSettings is publicly available. Instead, proxy contact data is published for your domain. Email sent to the proxy email address is forwarded to the registrant's email address. Cloud Domains provides this privacy proxy service at no additional cost.
REDACTED_CONTACT_DATA Some data from ContactSettings is publicly available. The actual information redacted depends on the domain. For details, see the registration privacy article.

Contact

Details required for a contact associated with a Registration.

JSON representation
{
  "postalAddress": {
    object (PostalAddress)
  },
  "email": string,
  "phoneNumber": string,
  "faxNumber": string
}
Fields
postalAddress

object (PostalAddress)

Required. Postal address of the contact.

email

string

Required. Email address of the contact.

phoneNumber

string

Required. Phone number of the contact in international format. For example, "+1-800-555-0123".

faxNumber

string

Fax number of the contact in international format. For example, "+1-800-555-0123".

PostalAddress

Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains).

In typical usage an address would be created via user input or from importing existing data, depending on the type of process.

Advice on address input / editing: - Use an i18n-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used.

For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478

JSON representation
{
  "revision": integer,
  "regionCode": string,
  "languageCode": string,
  "postalCode": string,
  "sortingCode": string,
  "administrativeArea": string,
  "locality": string,
  "sublocality": string,
  "addressLines": [
    string
  ],
  "recipients": [
    string
  ],
  "organization": string
}
Fields
revision

integer

The schema revision of the PostalAddress. This must be set to 0, which is the latest revision.

All new revisions must be backward compatible with old revisions.

regionCode

string

Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: "CH" for Switzerland.

languageCode

string

Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address' country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations.

If this value is not known, it should be omitted (rather than specifying a possibly incorrect default).

Examples: "zh-Hant", "ja", "ja-Latn", "en".

postalCode

string

Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).

sortingCode

string

Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number alone, representing the "sector code" (Jamaica), "delivery area indicator" (Malawi) or "post office indicator" (e.g. Côte d'Ivoire).

administrativeArea

string

Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. "Barcelona" and not "Catalonia"). Many countries don't use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.

locality

string

Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use addressLines.

sublocality

string

Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.

addressLines[]

string

Unstructured address lines describing the lower levels of an address.

Because values in addressLines do not have type information and may sometimes contain multiple values in a single field (e.g. "Austin, TX"), it is important that the line order is clear. The order of address lines should be "envelope order" for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. "ja" for large-to-small ordering and "ja-Latn" or "en" for small-to-large). This way, the most specific line of an address can be selected based on the language.

The minimum permitted structural representation of an address consists of a regionCode with all remaining information placed in the addressLines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved.

Creating an address only containing a regionCode and addressLines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).

recipients[]

string

Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain "care of" information.

organization

string

Optional. The name of the organization at the address.

Methods

configureContactSettings

Updates a Registration's contact settings.

configureDnsSettings

Updates a Registration's DNS settings.

configureManagementSettings

Updates a Registration's management settings.

delete

Deletes a Registration resource.

export

Exports a Registration that you no longer want to use with Cloud Domains.

get

Gets the details of a Registration resource.

getIamPolicy

Gets the access control policy for a resource.

list

Lists the Registration resources in a project.

patch

Updates select fields of a Registration resource, notably labels.

register

Registers a new domain name and creates a corresponding Registration resource.

resetAuthorizationCode

Resets the authorization code of the Registration to a new random string.

retrieveAuthorizationCode

Gets the authorization code of the Registration for the purpose of transferring the domain to another registrar.

retrieveRegisterParameters

Gets parameters needed to register a new domain name, including price and up-to-date availability.

searchDomains

Searches for available domain names similar to the provided query.

setIamPolicy

Sets the access control policy on the specified resource.

testIamPermissions

Returns permissions that a caller has on the specified resource.