protocol

package
v1.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 4, 2021 License: BSD-2-Clause Imports: 4 Imported by: 2

Documentation

Overview

Package protocol contains RDAP protocol types defined in RFC 7483 and in NIC.br extension document.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AS

type AS struct {
	ObjectClassName string          `json:"objectClassName"`
	Handle          string          `json:"handle"`
	StartAutnum     uint32          `json:"startAutnum"`
	EndAutnum       uint32          `json:"endAutnum"`
	Name            string          `json:"name,omitempty"`
	Type            string          `json:"type"`
	Country         string          `json:"country"`
	Links           []Link          `json:"links,omitempty"`
	Entities        []Entity        `json:"entities,omitempty"`
	RoutingPolicy   []RoutingPolicy `json:"nicbr_routingPolicy,omitempty"`
	Events          []Event         `json:"events,omitempty"`
	Notices         []Notice        `json:"notices,omitempty"`
	Remarks         []Remark        `json:"remarks,omitempty"`
	Conformance
	Port43
}

AS describes the Autonomous System Number Entity Object Class as it is in RFC 7483, section 5.5

type Conformance

type Conformance struct {
	Levels []string `json:"rdapConformance,omitempty"`
}

Conformance describes the RDAP conformance as it is in RFC 7483, section 4.1. The conformance is usually inserted in all responses to identify the extensions that the response includes

func (*Conformance) SetConformance

func (l *Conformance) SetConformance(levels []string)

SetConformance implements the ConformanceSetter and is used to enable conformance fields in response objects

type ConformanceSetter

type ConformanceSetter interface {
	SetConformance([]string)
}

ConformanceSetter interface for identifying response objects that can contain the conformance structure

type CustomerSupportService

type CustomerSupportService struct {
	Email   string `json:"nicbr_email,omitempty"`
	Website string `json:"nicbr_website,omitempty"`
	Phone   string `json:"nicbr_phone,omitempty"`
}

CustomerSupportService is a NIC.br extension to store some extra contact information for an entity

type DS

type DS struct {
	KeyTag     int     `json:"keyTag"`
	Algorithm  int     `json:"algorithm"`
	Digest     string  `json:"digest"`
	DigestType int     `json:"digestType"`
	Events     []Event `json:"events,omitempty"`
}

DS describes the dsData as it is in RFC 7483, section 5.3

type Domain

type Domain struct {
	ObjectClassName string       `json:"objectClassName"`
	Handle          string       `json:"handle,omitempty"`
	LDHName         string       `json:"ldhName,omitempty"`
	UnicodeName     string       `json:"unicodeName,omitempty"`
	Nameservers     []Nameserver `json:"nameservers,omitempty"`
	SecureDNS       *SecureDNS   `json:"secureDNS,omitempty"`
	Arbitration     bool         `json:"nicbr_arbitration,omitempty"`
	Links           []Link       `json:"links,omitempty"`
	Entities        []Entity     `json:"entities,omitempty"`
	Events          []Event      `json:"events,omitempty"`
	Status          []Status     `json:"status,omitempty"`
	PublicIDs       []PublicID   `json:"publicIds,omitempty"`
	Remarks         []Remark     `json:"remarks,omitempty"`
	Notices         []Notice     `json:"notices,omitempty"`
	Network         *IPNetwork   `json:"network,omitempty"`
	Unavailability  string       `json:"-"`
	Lang            string       `json:"lang,omitempty"`
	Conformance
	Port43
}

Domain describes Domain Object Class as it is in RFC 7483, section 5.3

type Entity

type Entity struct {
	ObjectClassName        string                  `json:"objectClassName"`
	Handle                 string                  `json:"handle"`
	VCardArray             []interface{}           `json:"vcardArray,omitempty"`
	Roles                  []string                `json:"roles,omitempty"`
	PublicIds              []PublicID              `json:"publicIds,omitempty"`
	Networks               []IPNetwork             `json:"networks,omitempty"`
	Autnums                []AS                    `json:"autnums,omitempty"`
	CustomerSupportService *CustomerSupportService `json:"nicbr_customerSupportService,omitempty"`
	Entities               []Entity                `json:"entities,omitempty"`
	Events                 []Event                 `json:"events,omitempty"`
	Links                  []Link                  `json:"links,omitempty"`
	Remarks                []Remark                `json:"remarks,omitempty"`
	Notices                []Notice                `json:"notices,omitempty"`
	DomainCount            int                     `json:"nicbr_domainCount,omitempty"`
	InetCount              int                     `json:"nicbr_inetCount,omitempty"`
	AutnumCount            int                     `json:"nicbr_autnumCount,omitempty"`
	Lang                   string                  `json:"lang,omitempty"`
	Conformance
	Port43

	// LegalRepresentative was proposed by NIC.br to store the name of the
	// persons that is responsible for this entity
	LegalRepresentative string `json:"legalRepresentative,omitempty"`
}

Entity describes the Entity Object Class as it is in RFC 7483, section 5.1

func (*Entity) GetEntity

func (e *Entity) GetEntity(role string) (entity Entity, found bool)

GetEntity is an easy way to find an entity with a given role. If more than one entity has the same role, the last one is returned

type Error

type Error struct {
	Notices     []Notice `json:"notices,omitempty"`
	Lang        string   `json:"lang,omitempty"`
	ErrorCode   int      `json:"errorCode,omitempty"`
	Title       string   `json:"title,omitempty"`
	Description []string `json:"description,omitempty"`
	Conformance
	Port43
}

Error describes an Error Response Body as it is in RFC 7483, section 6

func (Error) Error

func (e Error) Error() string

Error make it easy to transport the protocol error via Go error interface between different API levels

type Event

type Event struct {
	Action EventAction `json:"eventAction"`
	Actor  string      `json:"eventActor,omitempty"`
	Date   EventDate   `json:"eventDate"`

	// Status was proposed by NIC.br to store the status of a current event.
	// For NIC.br specific use was useful to store the status of a delegation
	// check event
	Status []Status `json:"status,omitempty"`
}

Event describes Events as it is in RFC 7483, section 4.5

type EventAction

type EventAction string

EventAction can store all different types of event actions described in RFC 7483, section 10.2.3

const (
	// EventActionRegistration the object instance was initially registered
	EventActionRegistration EventAction = "registration"

	// EventActionReRegistration the object instance was registered
	// subsequently to initial registration
	EventActionReRegistration EventAction = "reregistration"

	// EventActionLastChanged action noting when the information in the
	// object instance was last changed
	EventActionLastChanged EventAction = "last changed"

	// EventActionLastUpdate last date and time the database used by the RDAP
	// service was updated from the Registry or Registrar database
	EventActionLastUpdate EventAction = "last update of RDAP database"

	// EventActionExpiration the object instance has been removed or will be
	// removed at a predetermined date and time from the registry
	EventActionExpiration EventAction = "expiration"

	// EventActionDeletion the object instance was removed from the registry
	// at a point in time that was not predetermined
	EventActionDeletion EventAction = "deletion"

	// EventActionTransfer the object instance was transferred from one
	// registrant to another
	EventActionTransfer EventAction = "transfer"

	// EventActionLocked the object instance was locked (see the "locked"
	// status)
	EventActionLocked EventAction = "locked"

	// EventActionUnlocked the object instance was unlocked (see the "locked"
	// status)
	EventActionUnlocked EventAction = "unlocked"

	// EventDelegationCheck was proposed by NIC.br to store information about
	// DNS checks performed by the registry
	EventDelegationCheck EventAction = "delegation check"

	// EventDelegationSignCheck was proposed by NIC.br to store information about
	// DNSSEC checks performed by the registry
	EventDelegationSignCheck EventAction = "delegation sign check"

	// EventLastCorrectDelegationCheck was proposed by NIC.br to store the date
	// of the last time that the nameserver was well configured
	EventLastCorrectDelegationCheck EventAction = "last correct delegation check"

	// EventLastCorrectDelegationSignCheck was proposed by NIC.br to store the date
	// of the last time that the nameservers were well configured with DNSSEC
	// for the related DS record
	EventLastCorrectDelegationSignCheck EventAction = "last correct delegation sign check"
)

https://tools.ietf.org/html/rfc7483#section-10.2.3

type EventDate

type EventDate struct {
	time.Time
}

EventDate stores a Go time type and uses a more flexible algorithm for parsing the date, to allow a partial RFC 3339 format

func Date

func Date(year int, month time.Month, day, hour, min, sec, nsec int, loc *time.Location) EventDate

Date returns the EventDate corresponding to

yyyy-mm-dd hh:mm:ss + nsec nanoseconds

in the appropriate zone for that time in the given location.

The month, day, hour, min, sec, and nsec values may be outside their usual ranges and will be normalized during the conversion. For example, October 32 converts to November 1.

A daylight savings time transition skips or repeats times. For example, in the United States, March 13, 2011 2:15am never occurred, while November 6, 2011 1:15am occurred twice. In such cases, the choice of time zone, and therefore the time, is not well-defined. Date returns a time that is correct in one of the two zones involved in the transition, but it does not guarantee which.

Date panics if loc is nil.

func NewEventDate

func NewEventDate(t time.Time) EventDate

NewEventDate creates the object with the informed time

func (*EventDate) UnmarshalJSON

func (e *EventDate) UnmarshalJSON(data []byte) (err error)

UnmarshalJSON implements the json.Unmarshaler interface. The time is expected to be a quoted string in RFC 3339 format with or without the time/timezone

func (*EventDate) UnmarshalText

func (e *EventDate) UnmarshalText(data []byte) (err error)

UnmarshalText implements the encoding.TextUnmarshaler interface. The time is expected to be in RFC 3339 format with or without the time/timezone

type Help

type Help struct {
	Notices []Notice `json:"notices,omitempty"`
	Lang    string   `json:"lang,omitempty"`
	Conformance
	Port43
}

Help describes an answer to help queries as it is in RFC 7483, section 7

type IPAddresses

type IPAddresses struct {
	V4 []string `json:"v4,omitempty"`
	V6 []string `json:"v6,omitempty"`
}

IPAddresses describes the ipAddresses field as it is in RFC 7483, section 5.2

type IPNetwork

type IPNetwork struct {
	ObjectClassName    string              `json:"objectClassName"`
	Handle             string              `json:"handle"`
	StartAddress       string              `json:"startAddress"`
	EndAddress         string              `json:"endAddress"`
	IPVersion          string              `json:"ipVersion"`
	Name               string              `json:"name,omitempty"`
	Type               string              `json:"type"`
	Country            string              `json:"country"`
	ParentHandle       string              `json:"parentHandle,omitempty"`
	Status             []string            `json:"status"`
	Autnum             uint32              `json:"nicbr_autnum,omitempty"`
	Links              []Link              `json:"links"`
	Events             []Event             `json:"events"`
	Entities           []Entity            `json:"entities"`
	Notices            []Notice            `json:"notices,omitempty"`
	Remarks            []Remark            `json:"remarks,omitempty"`
	ReverseDelegations []ReverseDelegation `json:"nicbr_reverseDelegations,omitempty"`
	Conformance
	Port43
}

IPNetwork describes the IP Network Object Class as it is in RFC 7483, section 5.4

type Link struct {
	Value string `json:"value,omitempty"`
	Rel   string `json:"rel,omitempty"`
	Href  string `json:"href,omitempty"`
	Type  string `json:"type,omitempty"`
}

Link describes Links as it is in RFC 7483, section 4.2

type Nameserver

type Nameserver struct {
	ObjectClassName string       `json:"objectClassName"`
	Handle          string       `json:"handle,omitempty"`
	LDHName         string       `json:"ldhName,omitempty"`
	Lang            string       `json:"lang,omitempty"`
	UnicodeName     string       `json:"unicodeName,omitempty"`
	Entities        []Entity     `json:"entities,omitempty"`
	Status          []Status     `json:"status,omitempty"`
	IPAddresses     *IPAddresses `json:"ipAddresses,omitempty"`
	Remarks         []Remark     `json:"remarks,omitempty"`
	Links           []Link       `json:"links,omitempty"`
	Port43          string       `json:"port43,omitempty"`
	Events          []Event      `json:"events,omitempty"`
}

Nameserver describes the Nameserver Object Class as it is in RFC 7483, section 5.2

type Notice

type Notice struct {
	Title       string   `json:"title,omitempty"`
	Description []string `json:"description,omitempty"`
	Links       []Link   `json:"links,omitempty"`
}

Notice describes Notices as it is in RFC 7483, section 4.3

type Port43

type Port43 struct {
	Port43 string `json:"port43,omitempty"`
}

Port43 described as in RFC 7483, section 4.7. The port43 is usually inserted in all responses to identify the WHOIS server where the containing object instance may be found

func (*Port43) SetPort43

func (l *Port43) SetPort43(port43 string)

SetPort43 implements the Port43Setter and is used to fill port43 field in response objects

type Port43Setter

type Port43Setter interface {
	SetPort43(string)
}

Port43Setter interface for identifying response objects that can contain the conformance structure

type PublicID

type PublicID struct {
	Type       string `json:"type"`
	Identifier string `json:"identifier"`
}

PublicID describes Public IDs as it is in RFC 7483, section 4.8

type Remark

type Remark struct {
	Title       string   `json:"title,omitempty"`
	Type        string   `json:"type,omitempty"`
	Description []string `json:"description,omitempty"`
	Links       []Link   `json:"links,omitempty"`
}

Remark describes Remarks as it is in RFC 7483, section 4.3

type RemarkType

type RemarkType string

RemarkType stores one of the possible remark types as listed in RFC 7483, section 10.2.1

const (
	// RemarkTypeResultTruncatedAuthorization the list of results does not
	// contain all results due to lack of authorization.  This may indicate to
	// some clients that proper authorization will yield a longer result set
	RemarkTypeResultTruncatedAuthorization RemarkType = "result set truncated due to authorization"

	// RemarkTypeResultTruncatedExcessiveLoad the list of results does not
	// contain all results due to an excessively heavy load on the server. This
	// may indicate to some clients that requerying at a later time will yield a
	// longer result set
	RemarkTypeResultTruncatedExcessiveLoad RemarkType = "result set truncated due to excessive load"

	// RemarkTypeResultTruncatedUnexplainableReasons the list of results does not
	// contain all results for an unexplainable reason. This may indicate to some
	// clients that requerying for any reason will not yield a longer result set
	RemarkTypeResultTruncatedUnexplainableReasons RemarkType = "result set truncated due to unexplainable reasons"

	// RemarkTypeObjectTruncatedAuthorization The object does not contain all
	// data due to lack of authorization
	RemarkTypeObjectTruncatedAuthorization RemarkType = "object truncated due to authorization"

	// RemarkTypeObjectTruncatedExcessiveLoad the object does not contain all
	// data due to an excessively heavy load on the server. This may indicate to
	// some clients that requerying at a later time will yield all data of the
	// object
	RemarkTypeObjectTruncatedExcessiveLoad RemarkType = "object truncated due to excessive load"

	// RemarkTypeObjectTruncatedUnexplainableReasons the object does not
	// contain all data for an unexplainable reason
	RemarkTypeObjectTruncatedUnexplainableReasons RemarkType = "object truncated due to unexplainable reasons"
)

https://tools.ietf.org/html/rfc7483#section-10.2.1

const (
	// RemarkTypeObjectTruncatedServerPolicy the object does not contain all
	// data due to server policy. Could be excessive total number of queries
	RemarkTypeObjectTruncatedServerPolicy RemarkType = "object truncated due to server policy"
)

Proposed by NIC.br for server rate limit policies

type ReverseDS

type ReverseDS struct {
	Zone       string  `json:"zone"`
	KeyTag     int     `json:"keyTag"`
	Algorithm  int     `json:"algorithm"`
	Digest     string  `json:"digest"`
	DigestType int     `json:"digestType"`
	Events     []Event `json:"events,omitempty"`
}

type ReverseDelegation

type ReverseDelegation struct {
	StartAddress string                      `json:"startAddress"`
	EndAddress   string                      `json:"endAddress"`
	Nameservers  []Nameserver                `json:"nameservers,omitempty"`
	Events       []Event                     `json:"events"`
	SecureDNS    *ReverseDelegationSecureDNS `json:"secureDNS,omitempty"`
}

ReverseDelegation is a NIC.br extension to list all the IP network delegations and the corresponding nameservers

type ReverseDelegationSecureDNS

type ReverseDelegationSecureDNS struct {
	ZoneSigned       *bool       `json:"zoneSigned,omitempty"`
	DelegationSigned bool        `json:"delegationSigned"`
	DSSet            []ReverseDS `json:"dsData,omitempty"`
}

type RoutingPolicy

type RoutingPolicy struct {
	Autnum  uint32 `json:"nicbr_autnum"`
	Traffic int    `json:"nicbr_traffic"`
	Cost    int    `json:"nicbr_cost"`
	Policy  string `json:"nicbr_policy"`
}

RoutingPolicy is a NIC.br extension that stores the information of network announces

type SecureDNS

type SecureDNS struct {
	// ZoneSigned does not make too much sense for us to use
	// it, so we need to use a pointer to hide it with omitempty. Maybe the
	// real use for it is for TLDs that publish the DS records
	// without signing it, but its not clear in RFC 7483, section 5.3
	ZoneSigned       *bool `json:"zoneSigned,omitempty"`
	DelegationSigned bool  `json:"delegationSigned"`
	DSData           []DS  `json:"dsData,omitempty"`
}

SecureDNS describes the secureDNS as it is in RFC 7483, section 5.3

type Status

type Status string

Status stores one of the possible status as listed in RFC 7483, section 10.2.2

const (
	// Signifies that the data of the object instance has
	// been found to be accurate.  This type of status is usually
	// found on entity object instances to note the validity of
	// identifying contact information.
	StatusValidated Status = "validated"

	// The registration of the object instance has been
	// performed by a third party.  This is most commonly applied to
	// entities.
	StatusProxy Status = "proxy"

	// The information of the object instance is not
	// designated for public consumption.  This is most commonly
	// applied to entities.
	StatusPrivate Status = "private"

	// Some of the information of the object instance has
	// been altered for the purposes of not readily revealing the
	// actual information of the object instance.  This is most
	// commonly applied to entities.
	StatusObscured Status = "obscured"

	// The object instance is associated with other object
	// instances in the registry.  This is most commonly used to
	// signify that a nameserver is associated with a domain or that
	// an entity is associated with a network resource or domain.
	StatusAssociated Status = "associated"

	// Changes to the object instance cannot be made,
	// including the association of other object instances.
	StatusLocked Status = "locked"

	// StatusActive the object instance is in use.  For domain names, it
	// signifies that the domain name is published in DNS.  For network and autnum
	// registrations, it signifies that they are allocated or assigned for use in
	// operational networks.  This maps to the "OK" status of the Extensible
	// Provisioning Protocol (EPP) [RFC5730]
	StatusActive Status = "active"

	// StatusInactive the object instance is not in use. See "active"
	StatusInactive Status = "inactive"

	// StatusPendingCreate a request has been received for the creation of the
	// object instance, but this action is not yet complete
	StatusPendingCreate Status = "pending create"

	// StatusPendingRenew A request has been received for the renewal of the
	// object instance but this action is not yet complete.
	StatusPendingRenew Status = "pending renew"

	// StatusPendingtransfer A request has been received for the transfer of the
	// object instance but this action is not yet complete.
	StatusPendingTransfer Status = "pending transfer"

	// StatusPendingUpdate A request has been received for the update or
	// modification of the object instance but this action is not yet complete.
	StatusPendingUpdate Status = "pending update"

	// StatusPendingDelete A request has been received for the deletion or removal
	// of the object instance but this action is not yet complete. For domains,
	// this might mean that the name is no longer published in DNS but has not yet
	// been purged from the registry database.
	StatusPendingDelete Status = "pending delete"

	// StatusRenewProhibited Renewal or reregistration of the object instance is
	// forbidden.
	StatusRenewProhibited = "renew prohibited"

	// StatusTransferProhibited Transfers of the registration from one registrar
	// to another are forbidden. This type of status normally applies to DNR
	// domain names.
	StatusTransferProhibited = "transfer prohibited"

	// StatusUpdateProhibited Updates to the object instance are forbidden.
	StatusUpdateProhibited = "update prohibited"

	// StatusDeleteProhibited Deletion of the registration of the object instance
	// is forbidden. This type of status normally applies to DNR domain names.
	StatusDeleteProhibited = "delete prohibited"

	// StatusRemoved some of the information of the object instance has not
	// been made available and has been removed. This is most commonly applied
	// to entities
	StatusRemoved Status = "removed"
)

Mar/2015 - https://tools.ietf.org/html/rfc7483#section-10.2.2

const (
	// This grace period is provided after the initial
	// registration of the object.  If the object is deleted by the
	// client during this period, the server provides a credit to the
	// client for the cost of the registration.  This maps to the Domain
	// Registry Grace Period Mapping for the Extensible Provisioning
	// Protocol (EPP) [RFC3915] 'addPeriod' status.
	StatusAddPeriod Status = "add period"

	// This grace period is provided after an object
	// registration period expires and is extended (renewed)
	// automatically by the server.  If the object is deleted by the
	// client during this period, the server provides a credit to the
	// client for the cost of the auto renewal.  This maps to the Domain
	// Registry Grace Period Mapping for the Extensible Provisioning
	// Protocol (EPP) [RFC3915] 'autoRenewPeriod' status.
	StatusAutoRenewPeriod Status = "auto renew period"

	// The client requested that requests to delete the
	// object MUST be rejected.  This maps to the Extensible Provisioning
	// Protocol (EPP) Domain Name Mapping [RFC5731], Extensible
	// Provisioning Protocol (EPP) Host Mapping [RFC5732], and Extensible
	// Provisioning Protocol (EPP) Contact Mapping [RFC5733]
	// 'clientDeleteProhibited' status.
	StatusClientDeleteProhibited Status = "client delete prohibited"

	// The client requested that the DNS delegation
	// information MUST NOT be published for the object.  This maps to
	// the Extensible Provisioning Protocol (EPP) Domain Name Mapping
	// [RFC5731] 'clientHold' status.
	StatusClientHold Status = "client hold"

	// The client requested that requests to renew the
	// object MUST be rejected.  This maps to the Extensible Provisioning
	// Protocol (EPP) Domain Name Mapping [RFC5731]
	// 'clientRenewProhibited' status.
	StatusClientRenewProhibited Status = "client renew prohibited"

	// The client requested that requests to transfer the
	// object MUST be rejected.  This maps to the Extensible Provisioning
	// Protocol (EPP) Domain Name Mapping [RFC5731] and Extensible
	// Provisioning Protocol (EPP) Contact Mapping [RFC5733]
	// 'clientTransferProhibited' status.
	StatusClientTransferProhibited Status = "client transfer prohibited"

	// The client requested that requests to update the
	// object (other than to remove this status) MUST be rejected.  This
	// maps to the Extensible Provisioning Protocol (EPP) Domain Name
	// Mapping [RFC5731], Extensible Provisioning Protocol (EPP) Host
	// Mapping [RFC5732], and Extensible Provisioning Protocol (EPP)
	// Contact Mapping [RFC5733] 'clientUpdateProhibited' status.
	StatusClientUpdateProhibited Status = "client update prohibited"

	// An object is in the process of being restored after
	// being in the redemption period state.  This maps to the Domain
	// Registry Grace Period Mapping for the Extensible Provisioning
	// Protocol (EPP) [RFC3915] 'pendingRestore' status.
	StatusPendingRestore Status = "pending restore"

	// A delete has been received, but the object has not
	// yet been purged because an opportunity exists to restore the
	// object and abort the deletion process.  This maps to the Domain
	// Registry Grace Period Mapping for the Extensible Provisioning
	// Protocol (EPP) [RFC3915] 'redemptionPeriod' status.
	StatusRedemptionPeriod Status = "redemption period"

	// This grace period is provided after an object
	// registration period is explicitly extended (renewed) by the
	// client.  If the object is deleted by the client during this
	// period, the server provides a credit to the client for the cost of
	// the renewal.  This maps to the Domain Registry Grace Period
	// Mapping for the Extensible Provisioning Protocol (EPP) [RFC3915]
	// 'renewPeriod' status.
	StatusRenewPeriod Status = "renew period"

	// The server set the status so that requests to delete
	// the object MUST be rejected.  This maps to the Extensible
	// Provisioning Protocol (EPP) Domain Name Mapping [RFC5731],
	// Extensible Provisioning Protocol (EPP) Host Mapping [RFC5732], and
	// Extensible Provisioning Protocol (EPP) Contact Mapping [RFC5733]
	// 'serverDeleteProhibited' status.
	StatusServerDeleteProhibited Status = "server delete prohibited"

	// The server set the status so that requests to renew
	// the object MUST be rejected.  This maps to the Extensible
	// Provisioning Protocol (EPP) Domain Name Mapping [RFC5731]
	// 'serverRenewProhibited' status.
	StatusServerRenewProhibited Status = "server renew prohibited"

	// The server set the status so that requests to
	// transfer the object MUST be rejected.  This maps to the Extensible
	// Provisioning Protocol (EPP) Domain Name Mapping [RFC5731] and
	// Extensible Provisioning Protocol (EPP) Contact Mapping [RFC5733]
	// 'serverTransferProhibited' status.
	StatusServerTransferProhibited Status = "server transfer prohibited"

	// The server set the status so that requests to update
	// the object (other than to remove this status) MUST be rejected.
	// This maps to the Extensible Provisioning Protocol (EPP) Domain
	// Name Mapping [RFC5731], Extensible Provisioning Protocol (EPP)
	// Host Mapping [RFC5732], and Extensible Provisioning Protocol (EPP)
	// Contact Mapping [RFC5733] 'serverUpdateProhibited' status.
	StatusServerUpdateProhibited Status = "server update prohibited"

	// The server set the status so that DNS delegation
	// information MUST NOT be published for the object.  This maps to
	// the Extensible Provisioning Protocol (EPP) Domain Name Mapping
	// [RFC5731] 'serverHold' status.
	StatusServerHold Status = "server hold"

	// This grace period is provided after the successful
	// transfer of object registration sponsorship from one client to
	// another client.  If the object is deleted by the client during
	// this period, the server provides a credit to the client for the
	// cost of the transfer.  This maps to the Domain Registry Grace
	// Period Mapping for the Extensible Provisioning Protocol (EPP)
	// [RFC3915] 'transferPeriod' status.
	StatusTransferPeriod Status = "transfer period"
)

The following values appeared at RFC8056 - Jan/2017 - https://tools.ietf.org/html/rfc8056#3.1 EPP related constants

const (
	// StatusNSAA nameserver has authority for the domain (well configured)
	StatusNSAA Status = "ns aa"

	// StatusNSTimeout did not receive any answer of the nameserver when
	// performing a DNS query
	StatusNSTimeout Status = "ns timeout"

	// StatusNSNoAA nameserver doesn't have authority for the domain
	StatusNSNoAA Status = "ns noaa"

	// StatusNSUDN nameserver answers with unknown domain name
	StatusNSUDN Status = "ns udn"

	// StatusNSUH nameserver name could not be resolved
	StatusNSUH Status = "ns uh"

	// StatusNSFail nameserver answers with an internal server error
	StatusNSFail Status = "ns fail"

	// StatusNSQueryRefused nameserver refused to give an answer
	StatusNSQueryRefused Status = "ns query refused"

	// StatusNSConnectionRefused connection was refused (firewall)
	StatusNSConnectionRefused Status = "ns connection refused"

	// StatusNSError some generic error occurred while checking the nameserver
	StatusNSError Status = "ns error"

	// StatusNSCNAME found CNAME record in zone APEX (RFC 2181, section 10.1)
	StatusNSCNAME Status = "ns cname"

	// StatusNSSOAVersion found different SOA versions between the nameservers
	StatusNSSOAVersion Status = "ns soaVersion"

	// StatusDSOK all nameservers are well configured for this DS record
	StatusDSOK Status = "ds ok"

	// StatusDSTimeout did not receive any answer of the nameserver when
	// performing a DNSSEC query
	StatusDSTimeout Status = "ds timeout"

	// StatusDSNoSig no signature (RRSIG) was found in the answer
	StatusDSNoSig Status = "ds nosig"

	// StatusDSExpiredSig signature (RRSIG) is expired
	StatusDSExpiredSig Status = "ds expiredsig"

	// StatusDSInvalidSig signature (RRSIG) is invalid when checked with the
	// public key (DNSKEY)
	StatusDSInvalidSig Status = "ds invalidsig"

	// StatusDSNotFound the corresponding public key (DNSKEY) was not found in
	// the keyset
	StatusDSNotFound Status = "ds notfound"

	// StatusDSNoSEP the corresponding public key (DNSKEY) isn't a secure entry
	// point
	StatusDSNoSEP Status = "ds nosep"

	// StatusNONE dns error has occurred
	StatusNone Status = "plain dns error"
)

Proposed by NIC.br for DNS and DNSSEC checks of delegations

const (
	// StatusWaitingActivation waiting for the next publication cycle to
	// publish the domain name in the DNS
	StatusWaitingActivation Status = "nicbr waiting activation"

	// StatusWaitingInactivation waiting for the next publication cycle to
	// remove the domain name from the DNS
	StatusWaitingInactivation Status = "nicbr waiting inactivation"

	// StatusInactiveCourtOrder legal decision was executed and the domain name
	// cannot be published in the DNS
	StatusInactiveCourtOrder Status = "nicbr inactive court order"

	// StatusInactiveCG by a decision of the "Comitê Gestor da Internet no
	// Brasil", this domain name cannot be published in the DNS
	StatusInactiveCG Status = "nicbr inactive CG"
)

Proposed by NIC.br for domain status

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL