1// OpenRDAP
2// Copyright 2017 Tom Harwood
3// MIT License, see the LICENSE file.
4
5package rdap
6
7// Domain represents information about a DNS name and point of delegation.
8//
9// Domain is a topmost RDAP response object.
10type Domain struct {
11	DecodeData *DecodeData
12
13	Common
14	Conformance     []string `rdap:"rdapConformance"`
15	ObjectClassName string
16
17	Notices []Notice
18
19	Handle      string
20	LDHName     string `rdap:"ldhName"`
21	UnicodeName string
22
23	Variants []Variant
24
25	Nameservers []Nameserver
26
27	SecureDNS *SecureDNS
28
29	Entities []Entity
30	Status   []string
31
32	PublicIDs []PublicID `rdap:"publicIds"`
33	Remarks   []Remark
34	Links     []Link
35	Port43    string
36	Events    []Event
37	Network   *IPNetwork
38}
39
40// Variant is a subfield of Domain.
41type Variant struct {
42	DecodeData *DecodeData
43
44	Common
45	Relation     []string
46	IDNTable     string `rdap:"idnTable"`
47	VariantNames []VariantName
48}
49
50// VariantName is a subfield of Variant.
51type VariantName struct {
52	DecodeData *DecodeData
53
54	Common
55	LDHName     string `rdap:"ldhName"`
56	UnicodeName string
57}
58
59// SecureDNS is ia subfield of Domain.
60type SecureDNS struct {
61	DecodeData *DecodeData
62
63	Common
64	ZoneSigned       *bool
65	DelegationSigned *bool
66	MaxSigLife       *uint64
67	DS               []DSData  `rdap:"dsData"`
68	Keys             []KeyData `rdap:"keyData"`
69}
70
71// DSData is a subfield of Domain.
72type DSData struct {
73	DecodeData *DecodeData
74
75	Common
76	KeyTag     *uint64
77	Algorithm  *uint8
78	Digest     string
79	DigestType *uint8
80
81	Events []Event
82	Links  []Link
83}
84
85type KeyData struct {
86	DecodeData *DecodeData
87
88	Flags     *uint16
89	Protocol  *uint8
90	Algorithm *uint8
91	PublicKey string
92
93	Events []Event
94	Links  []Link
95}
96