libepp_nicbr
DomainCreateCmd.H
Go to the documentation of this file.
1 /* ${copyright}$ */
2 /* $Id: DomainCreateCmd.H 1181 2013-07-25 19:45:41Z rafael $ */
7 #ifndef __DOMAIN_CREATE_CMD_H__
8 #define __DOMAIN_CREATE_CMD_H__
9 
10 #include <string>
11 #include <vector>
12 #include <map>
13 #include <list>
14 
15 #include "libepp_nicbr.H"
16 
17 #include "Command.H"
18 #include "CommonData.H" // struct NameServer
19 #include "DSInfo.H"
20 #include "RegistrationPeriod.H"
21 #include "LaunchCreateCmd.H"
22 
23 using std::string;
24 using std::set;
25 using std::map;
26 using std::list;
27 using std::less;
28 
29 LIBEPP_NICBR_NS_BEGIN
30 
32 class DomainCreateCmd : public Command
33 {
34 public:
36  DomainCreateCmd(bool reset = true) : Command(false)
37  {
38  if (reset) {
39  this->reset();
40  }
41  }
42 
44 
47  void set_name(const string& name) { _name = name; }
48 
50 
53  string get_name() const { return _name; }
54 
56 
60  void set_period(const int time, const string& unit)
61  {
62  _period.time = time;
63  _period.unit = unit;
64  }
65 
67 
71 
73 
76  void insert_nameserver(const struct NameServer &nameserver)
77  {
78  _nameservers.push_back(nameserver);
79  }
80 
82 
85  vector<struct NameServer> get_nameservers() const { return _nameservers; }
86 
88 
91  void set_registrant(const string& registrant) { _registrant = registrant; }
92 
94 
97  string get_registrant() const { return _registrant; }
98 
100 
104  void insert_contact(const string& type, const string& identification)
105  {
106  _contacts[type] = identification;
107  }
108 
110 
113  map< string, string, less<string> > get_contacts() const { return _contacts; }
114 
116 
119  void set_authInfo(const AuthInfo &authInfo)
120  {
121  _authInfo = authInfo;
122  }
123 
125 
128  AuthInfo get_authInfo() const { return _authInfo; }
129 
130  //******************** RFC 4310/5910 BEGIN ********************
132 
135  void set_secDnsVersion(string secDnsVersion)
136  {
137  _secDnsVersion = secDnsVersion;
138  }
139 
141 
144  string get_secDnsVersion() const
145  {
146  return _secDnsVersion;
147  }
148 
150 
153  void add_dsInfo(const DSInfo &ds_info)
154  {
155  _ds_list.push_back(ds_info);
156  }
157 
159 
162  list<DSInfo> get_dsInfo() const
163  {
164  return _ds_list;
165  }
166 
168 
171  void add_keyData(const KeyData &dnskey_data)
172  {
173  _dnskey_list.push_back(dnskey_data);
174  }
175 
177 
180  list<KeyData> get_keyDataList() const
181  {
182  return _dnskey_list;
183  }
184 
186 
189  void set_max_sig_life(const unsigned int max_sig_life)
190  {
191  _max_sig_life = max_sig_life;
192  }
193 
195 
198  unsigned int get_max_sig_life() const
199  {
200  return _max_sig_life;
201  }
202 
204 
207  void set_launch(const LaunchCreateCmd &launch) { _launch = launch; }
208 
210 
213  LaunchCreateCmd get_launch() const { return _launch; }
214 
215  //******************** RFC 4310/5910 END ********************
216 
218  bool has_extension() const {
220  }
221 
223  bool has_secdns_extension() const {
224  bool hasSecDns10 = _secDnsVersion == "1.0" && !_ds_list.empty();
225 
226  bool hasSecDns11 = _secDnsVersion == "1.1" &&
227  !(_ds_list.empty() && _dnskey_list.empty());
228 
229  return (hasSecDns10 || hasSecDns11);
230  }
231 
233  bool has_launch_extension() const {
234  return _launch.get_phase().get_phase() != LaunchPhase::NONE;
235  }
236 
238  void reset()
239  {
240  Command::reset();
241  _name = "";
242  _period.time = 0;
243  _period.unit = "";
244  _nameservers.clear();
245  _registrant = "";
246  _contacts.clear();
247  _authInfo.reset();
248  _secDnsVersion = "1.1";
249  _max_sig_life = 0;
250  _ds_list.clear();
251  _dnskey_list.clear();
252  _launch.reset();
253  }
254 
255 protected:
257  string _name;
258 
261 
263  vector<struct NameServer> _nameservers;
264 
266  string _registrant;
267 
269  map< string, string, less<string> > _contacts;
270 
273 
276 
278  unsigned int _max_sig_life;
279 
281  list<DSInfo> _ds_list;
282 
284  list<KeyData> _dnskey_list;
285 
288 };
289 
290 LIBEPP_NICBR_NS_END
291 #endif //__DOMAIN_CREATE_CMD_H__
Definition: RegistrationPeriod.H:17
unsigned int _max_sig_life
RRSIG max signature life.
Definition: DomainCreateCmd.H:278
vector< struct NameServer > _nameservers
name servers associated with domain object
Definition: DomainCreateCmd.H:263
RegistrationPeriod _period
initial registration period of the domain object
Definition: DomainCreateCmd.H:260
string get_secDnsVersion() const
Returns secDNS extension version.
Definition: DomainCreateCmd.H:144
string get_name() const
Returns domain name.
Definition: DomainCreateCmd.H:53
bool has_launch_extension() const
Check if there is launch extension.
Definition: DomainCreateCmd.H:233
AuthInfo get_authInfo() const
Returns authorization information.
Definition: DomainCreateCmd.H:128
list< KeyData > _dnskey_list
KeyData.
Definition: DomainCreateCmd.H:284
map< string, string, less< string > > get_contacts() const
Returns map of other contacts.
Definition: DomainCreateCmd.H:113
Project defines.
EPP CommonData Class.
void insert_contact(const string &type, const string &identification)
Inserts a contact in the map of other contacts.
Definition: DomainCreateCmd.H:104
Definition: CommonData.H:183
EPP LaunchCreateCmd Class.
Definition: LaunchCreateCmd.H:20
void set_period(const int time, const string &unit)
Sets domain registration period.
Definition: DomainCreateCmd.H:60
RegistrationPeriod get_period() const
Returns domain registration period.
Definition: DomainCreateCmd.H:70
list< DSInfo > get_dsInfo() const
Returns DS information list.
Definition: DomainCreateCmd.H:162
string _registrant
registrant
Definition: DomainCreateCmd.H:266
map< string, string, less< string > > _contacts
other contact objects
Definition: DomainCreateCmd.H:269
string _secDnsVersion
RFC 4310/5910 secDNS extension version.
Definition: DomainCreateCmd.H:275
void set_launch(const LaunchCreateCmd &launch)
Sets the launch.
Definition: DomainCreateCmd.H:207
LaunchCreateCmd _launch
Launch.
Definition: DomainCreateCmd.H:287
void add_keyData(const KeyData &dnskey_data)
Adds DNSKEY information.
Definition: DomainCreateCmd.H:171
EPP RegistrationPeriod struct.
DSInfo Class.
Definition: DSInfo.H:16
LaunchPhase get_phase() const
Returns the phase of the launch.
Definition: LaunchCreateCmd.H:99
string get_registrant() const
Returns registrant.
Definition: DomainCreateCmd.H:97
vector< struct NameServer > get_nameservers() const
Returns a list of nameservers.
Definition: DomainCreateCmd.H:85
list< KeyData > get_keyDataList() const
Returns DNSKEY information list.
Definition: DomainCreateCmd.H:180
void reset()
Reset all object attributes.
Definition: CommonData.H:152
Definition: KeyData.H:15
void set_name(const string &name)
Sets domain name.
Definition: DomainCreateCmd.H:47
void set_registrant(const string &registrant)
Sets registrant.
Definition: DomainCreateCmd.H:91
Value get_phase() const
Returns the launch phase.
Definition: Launch.H:221
AuthInfo _authInfo
Authorization information.
Definition: DomainCreateCmd.H:272
bool has_extension() const
Check if there is any extension.
Definition: DomainCreateCmd.H:218
EPP DomainCreateCmd Class.
Definition: DomainCreateCmd.H:32
void add_dsInfo(const DSInfo &ds_info)
Adds DS information.
Definition: DomainCreateCmd.H:153
void insert_nameserver(const struct NameServer &nameserver)
Inserts a nameserver to the list of nameservers.
Definition: DomainCreateCmd.H:76
void reset()
Reset object attributes.
Definition: Command.H:33
void set_authInfo(const AuthInfo &authInfo)
Sets authorization information.
Definition: DomainCreateCmd.H:119
EPP Command Class.
Definition: Command.H:18
string _name
fully qualified domain name
Definition: DomainCreateCmd.H:257
list< DSInfo > _ds_list
DS info.
Definition: DomainCreateCmd.H:281
EPP Command Class.
LaunchCreateCmd get_launch() const
Returns the launch.
Definition: DomainCreateCmd.H:213
void reset()
Reset object attributes.
Definition: DomainCreateCmd.H:238
EPP/DNSSEC DS information class.
void set_secDnsVersion(string secDnsVersion)
Sets secDNS extension version.
Definition: DomainCreateCmd.H:135
void reset()
Reset object attributes.
Definition: LaunchCreateCmd.H:156
bool has_secdns_extension() const
Check if there is secDNS extension.
Definition: DomainCreateCmd.H:223
unsigned int get_max_sig_life() const
Returns the maximum signature life.
Definition: DomainCreateCmd.H:198
DomainCreateCmd(bool reset=true)
Default constructor.
Definition: DomainCreateCmd.H:36
AuthInfo Class.
Definition: CommonData.H:83
void set_max_sig_life(const unsigned int max_sig_life)
Sets the maximum signature life.
Definition: DomainCreateCmd.H:189