// FQDN is the Fully Qualified Domain Name. It is the combination of the host and the domain name. It always ends in a ".". FQDN is ignored in CreateRecord, specify via the Host field instead.
// Type is one of the following: A, AAAA, ANAME, CNAME, MX, NS, SRV, or TXT.
Typestring`json:"type,omitempty"`
// Answer is either the IP address for A or AAAA records; the target for ANAME, CNAME, MX, or NS records; the text for TXT records.
// For SRV records, answer has the following format: "{weight} {port} {target}" e.g. "1 5061 sip.example.org".
Answerstring`json:"answer,omitempty"`
// TTL is the time this record can be cached for in seconds. Name.com allows a minimum TTL of 300, or 5 minutes.
TTLuint32`json:"ttl,omitempty"`
// Priority is only required for MX and SRV records, it is ignored for all others.
Priorityuint32`json:"priority,omitempty"`
}
// ListRecordsRequest requests a list of records that exist for the domain
typeListRecordsRequeststruct{
// DomainName is the zone to list the records for.
DomainNamestring`json:"domainName,omitempty"`
// Per Page is the number of records to return per request. Per Page defaults to 1,000.
PerPageint32`json:"perPage,omitempty"`
// Page is which page to return
Pageint32`json:"page,omitempty"`
}
// ListRecordsResponse is the response for the ListRecords function.
typeListRecordsResponsestruct{
// Records contains the records in the zone
Records[]*Record`json:"records,omitempty"`
// NextPage is the identifier for the next page of results. It is only populated if there is another page of results after the current page.
NextPageint32`json:"nextPage,omitempty"`
// LastPage is the identifier for the final page of results. It is only populated if there is another page of results after the current page.
LastPageint32`json:"lastPage,omitempty"`
}
// GetRecordRequest requests the record identified by id and domain.
typeGetRecordRequeststruct{
// DomainName is the zone the record exists in
DomainNamestring`json:"domainName,omitempty"`
// ID is the server-assigned unique identifier for this record
IDint32`json:"id,omitempty"`
}
// DeleteRecordRequest deletes a specific record
typeDeleteRecordRequeststruct{
// DomainName is the zone that the record to be deleted exists in.
DomainNamestring`json:"domainName,omitempty"`
// ID is the server-assigned unique identifier for the Record to be deleted. If the Record with that ID does not exist in the specified Domain, an error is returned.
IDint32`json:"id,omitempty"`
}
// DNSSEC contains all the data required to create a DS record at the registry.
typeDNSSECstruct{
// DomainName is the domain name.
DomainNamestring`json:"domainName,omitempty"`
// KeyTag contains the key tag value of the DNSKEY RR that validates this signature. The algorithm to generate it is here: https://tools.ietf.org/html/rfc4034#appendix-B
KeyTagint32`json:"keyTag,omitempty"`
// Algorithm is an integer identifying the algorithm used for signing. Valid values can be found here: https://www.iana.org/assignments/dns-sec-alg-numbers/dns-sec-alg-numbers.xhtml
Algorithmint32`json:"algorithm,omitempty"`
// DigestType is an integer identifying the algorithm used to create the digest. Valid values can be found here: https://www.iana.org/assignments/ds-rr-types/ds-rr-types.xhtml
DigestTypeint32`json:"digestType,omitempty"`
// Digest is a digest of the DNSKEY RR that is registered with the registry.
Digeststring`json:"digest,omitempty"`
}
// ListDNSSECsRequest contains the domain name to list DS records for.
typeListDNSSECsRequeststruct{
// DomainName is the domain name to list keys for.
DomainNamestring`json:"domainName,omitempty"`
}
// ListDNSSECsResponse contains the list of DS records at the registry.
typeListDNSSECsResponsestruct{
// Dnssec is the list of registered DNSSEC keys.
Dnssec[]*DNSSEC`json:"dnssec,omitempty"`
// NextPage is the identifier for the next page of results. It is only populated if there is another page of results after the current page.
NextPageint32`json:"nextPage,omitempty"`
// LastPage is the identifier for the final page of results. It is only populated if there is another page of results after the current page.
LastPageint32`json:"lastPage,omitempty"`
}
// GetDNSSECRequest gets the information for a specific DS record at the registry.
typeGetDNSSECRequeststruct{
// DomainName is the domain name.
DomainNamestring`json:"domainName,omitempty"`
// Digest is the digest for the DNSKEY RR to retrieve.
Digeststring`json:"digest,omitempty"`
}
// DeleteDNSSECRequest specifies the domain name and digest to remove from the registry.
typeDeleteDNSSECRequeststruct{
// DomainName is the domain name the key is registered for.
DomainNamestring`json:"domainName,omitempty"`
// Digest is the digest for the DNSKEY RR to remove from the registry.
Digeststring`json:"digest,omitempty"`
}
// Contact contains all the contact data.
typeContactstruct{
// First name of the contact.
FirstNamestring`json:"firstName,omitempty"`
// Last name of the contact.
LastNamestring`json:"lastName,omitempty"`
// Company name of the contact. Leave blank if the contact is an individual as some registries will assume it is a corporate entity otherwise.
CompanyNamestring`json:"companyName,omitempty"`
// Address1 is the first line of the contact's address.
Address1string`json:"address1,omitempty"`
// Address2 is the second line of the contact's address.
Address2string`json:"address2,omitempty"`
// City of the contact's address.
Citystring`json:"city,omitempty"`
// State or Province for the contact's address.
Statestring`json:"state,omitempty"`
// Zip or Postal Code for the contact's address.
Zipstring`json:"zip,omitempty"`
// Country code for the contact's address. Required to be a ISO 3166-1 alpha-2 code.
Countrystring`json:"country,omitempty"`
// Phone number of the contact. Should be specified in the following format: "+cc.llllllll" where cc is the country code and llllllll is the local number.
Phonestring`json:"phone,omitempty"`
// Fax number of the contact. Should be specified in the following format: "+cc.llllllll" where cc is the country code and llllllll is the local number.
// Contacts stores the contact information for the roles related to domains.
typeContactsstruct{
// Registrant is the rightful owner of the account and has the right to use and/or sell the domain name. They are able to make changes to all account, domain, and product settings. This information should be reviewed and updated regularly to ensure accuracy.
Registrant*Contact`json:"registrant,omitempty"`
// Registrants often designate an administrative contact to manage their domain name(s). They primarily deal with business information such as the name on record, postal address, and contact information for the official registrant.
Admin*Contact`json:"admin,omitempty"`
// The technical contact manages and maintains a domain’s nameservers. If you’re working with a web designer or someone in a similar role, you many want to assign them as a technical contact.
Tech*Contact`json:"tech,omitempty"`
// The billing contact is the party responsible for paying bills for the account and taking care of renewals.
Billing*Contact`json:"billing,omitempty"`
}
// Domain lists all the data for a domain.
typeDomainstruct{
// DomainName is the punycode encoded value of the domain name.
DomainNamestring`json:"domainName,omitempty"`
// Nameservers is the list of nameservers for this domain. If unspecified it defaults to your account default nameservers.
Nameservers[]string`json:"nameservers,omitempty"`
// Contacts for the domain.
Contacts*Contacts`json:"contacts,omitempty"`
// PrivacyEnabled reflects if Whois Privacy is enabled for this domain.
// SearchRequest is used to specify the search parameters.
typeSearchRequeststruct{
// Timeout is a value in milliseconds on how long to perform the search for. Valid timeouts are between 500ms to 5,000ms. If not specified, timeout defaults to 1,000ms.
// Since some additional processing is performed on the results, a response may take longer then the timeout.
Timeoutint32`json:"timeout,omitempty"`
// Keyword is the search term to search for. It can be just a word, or a whole domain name.
Keywordstring`json:"keyword,omitempty"`
// TLDFilter will limit results to only contain the specified TLDs.
TldFilter[]string`json:"tldFilter,omitempty"`
// PromoCode is not implemented yet.
PromoCodestring`json:"promoCode,omitempty"`
}
// AvailabilityRequest is used to list the domain names to check availability for.
typeAvailabilityRequeststruct{
// DomainNames is the list of domains to check if they are available.
DomainNames[]string`json:"domainNames,omitempty"`
// PromoCode is not implemented yet.
PromoCodestring`json:"promoCode,omitempty"`
}
// SearchResult is returned by the CheckAvailability, Search, and SearchStream functions.
typeSearchResultstruct{
// DomainName is the punycode encoding of the result domain name.
DomainNamestring`json:"domainName,omitempty"`
// SLD is first portion of the domain_name.
Sldstring`json:"sld,omitempty"`
// TLD is the rest of the domain_name after the SLD.
Tldstring`json:"tld,omitempty"`
// Purchaseable indicates whether the search result is available for purchase.
Purchasablebool`json:"purchasable,omitempty"`
// Premium indicates that this search result is a premium result and the purchase_price needs to be passed to the DomainCreate command.
Premiumbool`json:"premium,omitempty"`
// PurchasePrice is the price for purchasing this domain for 1 year. Purchase_price is always in USD.
// SearchResponse returns a list of search results.
typeSearchResponsestruct{
// Results of the search are returned here, the order should not be relied upon.
Results[]*SearchResult`json:"results,omitempty"`
}
// ListDomainsRequest is used to pass the pagination parameters to the ListDomains function.
typeListDomainsRequeststruct{
// Per Page is the number of records to return per request. Per Page defaults to 1,000.
PerPageint32`json:"perPage,omitempty"`
// Page is which page to return
Pageint32`json:"page,omitempty"`
}
// ListDomainsResponse is the response from a list request, it contains the paginated list of Domains.
typeListDomainsResponsestruct{
// Domains is the list of domains in your account.
Domains[]*Domain`json:"domains,omitempty"`
// NextPage is the identifier for the next page of results. It is only populated if there is another page of results after the current page.
NextPageint32`json:"nextPage,omitempty"`
// LastPage is the identifier for the final page of results. It is only populated if there is another page of results after the current page.
LastPageint32`json:"lastPage,omitempty"`
}
// GetDomainRequest specifies the domain name to request data for in the GetDomain function.
typeGetDomainRequeststruct{
// DomainName is the domain to retrieve.
DomainNamestring`json:"domainName,omitempty"`
}
// CreateDomainRequest has the information that is needed to create a domain with the CreateDomain function.
typeCreateDomainRequeststruct{
// Domain is the domain object to create. If privacy_enabled is set, Whois Privacy will also be purchased for an additional amount.
Domain*Domain`json:"domain,omitempty"`
// PurchasePrice is the amount to pay for the domain. If privacy_enabled is set, the regular price for whois protection will be added automatically. If VAT tax applies, it will also be added automatically.
// PurchasePrice is required if purchase_type is not "registration" or if it is a premium domain.
// Years is for how many years to renew the domain for. Years defaults to 1 if not passed and cannot be more than 10.
Yearsint32`json:"years,omitempty"`
// PromoCode is not yet implemented.
PromoCodestring`json:"promoCode,omitempty"`
}
// RenewDomainResponse contains the updated domain info as well as the order info for the renewed domain.
typeRenewDomainResponsestruct{
// Domain reflects the status of the domain after renewing.
Domain*Domain`json:"domain,omitempty"`
// Order is an identifier for this purchase
Orderint32`json:"order,omitempty"`
// TotalPaid is the total amount paid, including VAT.
TotalPaidfloat64`json:"totalPaid,omitempty"`
}
// AuthCodeRequest passes the domain name to the GetAuthCodeForDomain funtion.
typeAuthCodeRequeststruct{
// DomainName is the domain name to retrieve the authorization code for.
DomainNamestring`json:"domainName,omitempty"`
}
// AuthCodeResponse returns the auth code from the GetAuthCodeForDomain funtion.
typeAuthCodeResponsestruct{
// AuthCode is the authorization code needed to transfer a domain to another registrar. If you are storing auth codes, be sure to store them in a secure manner.
AuthCodestring`json:"authCode,omitempty"`
}
// PrivacyRequest passes the domain name as well as the purchase parameters to the PurchasePrivacy function.
typePrivacyRequeststruct{
// DomainName is the domain to purchase Whois Privacy for.
// Years is the number of years you wish to purchase Whois Privacy for. Years defaults to 1 and cannot be more then the domain expiration date.
Yearsint32`json:"years,omitempty"`
// PromoCode is not yet implemented
PromoCodestring`json:"promoCode,omitempty"`
}
// PrivacyResponse contains the updated domain info as well as the order info for the newly purchased Whois Privacy.
typePrivacyResponsestruct{
// Domain is the status of the domain after the purchase of Whois Privacy.
Domain*Domain`json:"domain,omitempty"`
// Order is an identifier for this purchase.
Orderint32`json:"order,omitempty"`
// TotalPaid is the total amount paid, including VAT.
TotalPaidfloat64`json:"totalPaid,omitempty"`
}
// SetNameserversRequest passes the list of nameservers to set for the SetNameserver function.
typeSetNameserversRequeststruct{
// DomainName is the domain name to set the nameservers for.
DomainNamestring`json:"domainName,omitempty"`
// Namesevers is a list of the nameservers to set. Nameservers should already be set up and hosting the zone properly as some registries will verify before allowing the change.
Nameservers[]string`json:"nameservers,omitempty"`
}
// SetContactsRequest passes the contact info for each role to the SetContacts function.
typeSetContactsRequeststruct{
// DomainName is the domain name to set the contacts for.
DomainNamestring`json:"domainName,omitempty"`
// Contacts is the list of contacts to set.
Contacts*Contacts`json:"contacts,omitempty"`
}
// EnableAutorenewForDomainRequest is used to pass the domain name to the EnableAutorenewForDomain function.
typeEnableAutorenewForDomainRequeststruct{
// DomainName is the domain name to enable autorenew for.
DomainNamestring`json:"domainName,omitempty"`
}
// DisableAutorenewForDomainRequest is used to pass the domain name to the DisableAutorenewForDomain function.
typeDisableAutorenewForDomainRequeststruct{
// DomainName is the domain name to disable autorenew for.
DomainNamestring`json:"domainName,omitempty"`
}
// LockDomainRequest is used to pass the domain name to the LockDomain function.
typeLockDomainRequeststruct{
// DomainName is the domain name to lock.
DomainNamestring`json:"domainName,omitempty"`
}
// UnlockDomainRequest is used to pass the domain name to the UnlockDomain function.
typeUnlockDomainRequeststruct{
// DomainName is the domain name to unlock.
DomainNamestring`json:"domainName,omitempty"`
}
// EmailForwarding contains all the information for an email forwarding entry.
typeEmailForwardingstruct{
// DomainName is the domain part of the email address to forward.
DomainNamestring`json:"domainName,omitempty"`
// EmailBox is the user portion of the email address to forward.
EmailBoxstring`json:"emailBox,omitempty"`
// EmailTo is the entire email address to forward email to.
EmailTostring`json:"emailTo,omitempty"`
}
// ListEmailForwardingsRequest passes the domain name and pagination information to the ListEmailForwardings function.
typeListEmailForwardingsRequeststruct{
// DomainName is the domain to list email forwarded boxes for.
DomainNamestring`json:"domainName,omitempty"`
// Per Page is the number of records to return per request. Per Page defaults to 1,000.
PerPageint32`json:"perPage,omitempty"`
// Page is which page to return.
Pageint32`json:"page,omitempty"`
}
// ListEmailForwardingsResponse returns the list of email forwarding entries as well as the pagination information.
typeListEmailForwardingsResponsestruct{
// EmailForwarding is the list of forwarded email boxes.
// NextPage is the identifier for the next page of results. It is only populated if there is another page of results after the current page.
NextPageint32`json:"nextPage,omitempty"`
// LastPage is the identifier for the final page of results. It is only populated if there is another page of results after the current page.
LastPageint32`json:"lastPage,omitempty"`
}
// GetEmailForwardingRequest passes the domain name and email box to request the email forwarding information for.
typeGetEmailForwardingRequeststruct{
// DomainName is the domain to list email forwarded box for.
DomainNamestring`json:"domainName,omitempty"`
// EmailBox is which email box to retrieve.
EmailBoxstring`json:"emailBox,omitempty"`
}
// DeleteEmailForwardingRequest passes the domain name and email box to the DeleteEmailForwarding function.
typeDeleteEmailForwardingRequeststruct{
// DomainName is the domain to delete the email forwarded box from.
DomainNamestring`json:"domainName,omitempty"`
// EmailBox is which email box to delete.
EmailBoxstring`json:"emailBox,omitempty"`
}
// HelloRequest doesn't take any parameters.
typeHelloRequeststruct{
}
// HelloResponse is the response from the HelloFunc command
typeHelloResponsestruct{
// ServerName is an identfier for which server is being accessed.
ServerNamestring`json:"serverName,omitempty"`
// Motd is a message of the day. It might provide some useful information.
Motdstring`json:"motd,omitempty"`
// Username is the account name you are currently logged into.
Usernamestring`json:"username,omitempty"`
// ServerTime is the current date/time at the server.
ServerTimestring`json:"serverTime,omitempty"`
}
// Transfer contains the information related to a transfer of a domain name to Name.com.
typeTransferstruct{
// DomainName is the domain to be transfered to Name.com.
DomainNamestring`json:"domainName,omitempty"`
// Email is the email address that the approval email was sent to. Not every TLD requries an approval email. This is usaully pulled from Whois.
Emailstring`json:"email,omitempty"`
// Status is the current status of the transfer. Details about statuses can be found in the following Knowledge Base article: <https://www.name.com/support/articles/115012519688-Transfer-status-FAQ>.
Statusstring`json:"status,omitempty"`
}
// ListTransfersRequest passes the pagination information to the ListTransfers function.
typeListTransfersRequeststruct{
// Per Page is the number of records to return per request. Per Page defaults to 1,000.
PerPageint32`json:"perPage,omitempty"`
// Page is which page to return
Pageint32`json:"page,omitempty"`
}
// ListTransfersResponse returns the list of pending transfers as well as the paginiation information if relevent.
typeListTransfersResponsestruct{
// Transfers is a list of pending transfers
Transfers[]*Transfer`json:"transfers,omitempty"`
// NextPage is the identifier for the next page of results. It is only populated if there is another page of results after the current page.
NextPageint32`json:"nextPage,omitempty"`
// LastPage is the identifier for the final page of results. It is only populated if there is another page of results after the current page.
LastPageint32`json:"lastPage,omitempty"`
}
// GetTransferRequest passes the domain name to the GetTransfer function.
typeGetTransferRequeststruct{
// DomainName is the domain you want to get the transfer information for.
DomainNamestring`json:"domainName,omitempty"`
}
// CreateTransferRequest passes the required transfer info to the CreateTransfer function.
typeCreateTransferRequeststruct{
// DomainName is the domain you want to transfer to Name.com.
DomainNamestring`json:"domainName,omitempty"`
// AuthCode is the authorization code for the transfer. Not all TLDs require authorization codes, but most do.
AuthCodestring`json:"authCode,omitempty"`
// PrivacyEnabled is a flag on whether to purchase Whois Privacy with the transfer.
// PurchasePrice is the amount to pay for the transfer of the domain. If privacy_enabled is set, the regular price for Whois Privacy will be added automatically. If VAT tax applies, it will also be added automatically.
// PurchasePrice is required if the domain to transfer is a premium domain.
// CreateTransferResponse returns the newly created transfer resource as well as the order information.
typeCreateTransferResponsestruct{
// Transfer is the transfer resource created.
Transfer*Transfer`json:"transfer,omitempty"`
// Order is an identifier for this purchase.
Orderint32`json:"order,omitempty"`
// TotalPaid is the total amount paid, including VAT and Whois Privacy.
TotalPaidfloat64`json:"totalPaid,omitempty"`
}
// CancelTransferRequest passes the domain name to be canceled to the CancelTransfer function.
typeCancelTransferRequeststruct{
// DomainName is the domain to cancel the transfer for.
DomainNamestring`json:"domainName,omitempty"`
}
// URLForwarding is the model for URL forwarding entries.
typeURLForwardingstruct{
// DomainName is the domain part of the hostname to forward.
DomainNamestring`json:"domainName,omitempty"`
// Host is the entirety of the hostname. i.e. www.example.org
Hoststring`json:"host,omitempty"`
// ForwardsTo is the URL this host will be forwarded to.
ForwardsTostring`json:"forwardsTo,omitempty"`
// Type is the type of forwarding. Valid types are: Masked - This retains the original domain in the address bar and will not reveal or display the actual destination URL. If you are forwarding knowledgebase.ninja to Name.com, the address bar will say knowledgebase.ninja. This is sometimes called iframe forwarding. And: Redirect - This does not retain the original domain in the address bar, so the user will see it change and realize they were forwarded from the URL they originally entered. If you are forwarding knowledgebase.ninja to Name.com, the address bar will say Name.com. This is also called 301 forwarding.
Typestring`json:"type,omitempty"`
// Title is the title for the html page to use if the type is masked. Values are ignored for types other then "masked".
Titlestring`json:"title,omitempty"`
// Meta is the meta tags to add to the html page if the type is masked. ex: "<meta name='keywords' content='fish, denver, platte'>". Values are ignored for types other then "masked".
Metastring`json:"meta,omitempty"`
}
// ListURLForwardingsRequest is the request for the ListURLForwardings function.
typeListURLForwardingsRequeststruct{
// DomainName is the domain to list URL forwarding entries for.
DomainNamestring`json:"domainName,omitempty"`
// Per Page is the number of records to return per request. Per Page defaults to 1,000.
PerPageint32`json:"perPage,omitempty"`
// Page is which page to return.
Pageint32`json:"page,omitempty"`
}
// ListURLForwardingsResponse is the response for the ListURLForwardings function.
typeListURLForwardingsResponsestruct{
// URLForwarding is the list of URL forwarding entries.