1 // SoftEther VPN Server JSON-RPC Stub code for C#
2 //
3 // VPNServerRpcTypes.cs - Data Type Definition for SoftEther VPN Server JSON-RPC Stubs
4 //
5 // Automatically generated at 2019-07-10 14:36:11 by vpnserver-jsonrpc-codegen
6 //
7 // Licensed under the Apache License 2.0
8 // Copyright (c) 2014-2019 SoftEther VPN Project
9 
10 using System;
11 using Newtonsoft.Json;
12 
13 namespace SoftEther.VPNServerRpc
14 {
15     /// <summary>
16     /// IP Protocol Numbers
17     /// </summary>
18     public enum VpnIpProtocolNumber
19     {
20         /// <summary>
21         /// ICMP for IPv4
22         /// </summary>
23         ICMPv4 = 1,
24 
25         /// <summary>
26         ///  TCP
27         /// </summary>
28         TCP = 6,
29 
30         /// <summary>
31         ///  UDP
32         /// </summary>
33         UDP = 17,
34 
35         /// <summary>
36         /// ICMP for IPv6
37         /// </summary>
38         ICMPv6 = 58,
39     }
40 
41     /// <summary>
42     /// The body of the Access list
43     /// </summary>
44     public class VpnAccess
45     {
46         /// <summary>
47         /// ID
48         /// </summary>
49         public uint Id_u32;
50 
51         /// <summary>
52         /// Specify a description (note) for this rule
53         /// </summary>
54         public string Note_utf;
55 
56         /// <summary>
57         /// Enabled flag (true: enabled, false: disabled)
58         /// </summary>
59         public bool Active_bool;
60 
61         /// <summary>
62         /// Specify an integer of 1 or higher to indicate the priority of the rule. Higher priority is given to rules with the lower priority values.
63         /// </summary>
64         public uint Priority_u32;
65 
66         /// <summary>
67         /// The flag if the rule is DISCARD operation or PASS operation. When a packet matches this rule condition, this operation is decided. When the operation of the rule is PASS, the packet is allowed to pass, otherwise the packet will be discarded.
68         /// </summary>
69         public bool Discard_bool;
70 
71         /// <summary>
72         /// The flag if the rule is for IPv6. Specify false for IPv4, or specify true for IPv6.
73         /// </summary>
74         public bool IsIPv6_bool;
75 
76         /// <summary>
77         /// Valid only if the rule is IPv4 mode (IsIPv6_bool == false). Specify a source IPv4 address as a rule condition. You must also specify the SrcSubnetMask_ip field.
78         /// </summary>
79         public string SrcIpAddress_ip;
80 
81         /// <summary>
82         /// Valid only if the rule is IPv4 mode (IsIPv6_bool == false). Specify a source IPv4 subnet mask as a rule condition. "0.0.0.0" means all hosts. "255.255.255.255" means one single host.
83         /// </summary>
84         public string SrcSubnetMask_ip;
85 
86         /// <summary>
87         /// Valid only if the rule is IPv4 mode (IsIPv6_bool == false). Specify a destination IPv4 address as a rule condition. You must also specify the DestSubnetMask_ip field.
88         /// </summary>
89         public string DestIpAddress_ip;
90 
91         /// <summary>
92         /// Valid only if the rule is IPv4 mode (IsIPv6_bool == false). Specify a destination IPv4 subnet mask as a rule condition. "0.0.0.0" means all hosts. "255.255.255.255" means one single host.
93         /// </summary>
94         public string DestSubnetMask_ip;
95 
96         /// <summary>
97         /// Valid only if the rule is IPv6 mode (IsIPv6_bool == true). Specify a source IPv6 address as a rule condition. The field must be a byte array of 16 bytes (128 bits) to contain the IPv6 address in binary form. You must also specify the SrcSubnetMask6_bin field.
98         /// </summary>
99         public byte[] SrcIpAddress6_bin;
100 
101         /// <summary>
102         /// Valid only if the rule is IPv6 mode (IsIPv6_bool == true). Specify a source IPv6 subnet mask as a rule condition. The field must be a byte array of 16 bytes (128 bits) to contain the IPv6 subnet mask in binary form.
103         /// </summary>
104         public byte[] SrcSubnetMask6_bin;
105 
106         /// <summary>
107         /// Valid only if the rule is IPv6 mode (IsIPv6_bool == true). Specify a destination IPv6 address as a rule condition. The field must be a byte array of 16 bytes (128 bits) to contain the IPv6 address in binary form. You must also specify the DestSubnetMask6_bin field.
108         /// </summary>
109         public byte[] DestIpAddress6_bin;
110 
111         /// <summary>
112         /// Valid only if the rule is IPv6 mode (IsIPv6_bool == true). Specify a destination IPv6 subnet mask as a rule condition. The field must be a byte array of 16 bytes (128 bits) to contain the IPv6 subnet mask in binary form.
113         /// </summary>
114         public byte[] DestSubnetMask6_bin;
115 
116         /// <summary>
117         /// The IP protocol number
118         /// </summary>
119         public VpnIpProtocolNumber Protocol_u32;
120 
121         /// <summary>
122         /// The Start Value of the Source Port Number Range. If the specified protocol is TCP/IP or UDP/IP, specify the source port number as the rule condition. Protocols other than this will be ignored. When this parameter is not specified, the rules will apply to all port numbers.
123         /// </summary>
124         public uint SrcPortStart_u32;
125 
126         /// <summary>
127         /// The End Value of the Source Port Number Range. If the specified protocol is TCP/IP or UDP/IP, specify the source port number as the rule condition. Protocols other than this will be ignored. When this parameter is not specified, the rules will apply to all port numbers.
128         /// </summary>
129         public uint SrcPortEnd_u32;
130 
131         /// <summary>
132         /// The Start Value of the Destination Port Number Range. If the specified protocol is TCP/IP or UDP/IP, specify the destination port number as the rule condition. Protocols other than this will be ignored. When this parameter is not specified, the rules will apply to all port numbers.
133         /// </summary>
134         public uint DestPortStart_u32;
135 
136         /// <summary>
137         /// The End Value of the Destination Port Number Range. If the specified protocol is TCP/IP or UDP/IP, specify the destination port number as the rule condition. Protocols other than this will be ignored. When this parameter is not specified, the rules will apply to all port numbers.
138         /// </summary>
139         public uint DestPortEnd_u32;
140 
141         /// <summary>
142         /// Source user name. You can apply this rule to only the packets sent by a user session of a user name that has been specified as a rule condition. In this case, specify the user name.
143         /// </summary>
144         public string SrcUsername_str;
145 
146         /// <summary>
147         /// Destination user name. You can apply this rule to only the packets received by a user session of a user name that has been specified as a rule condition. In this case, specify the user name.
148         /// </summary>
149         public string DestUsername_str;
150 
151         /// <summary>
152         /// Specify true if you want to check the source MAC address.
153         /// </summary>
154         public bool CheckSrcMac_bool;
155 
156         /// <summary>
157         /// Source MAC address (6 bytes), valid only if CheckSrcMac_bool == true.
158         /// </summary>
159         public byte[] SrcMacAddress_bin;
160 
161         /// <summary>
162         /// Source MAC address mask (6 bytes), valid only if CheckSrcMac_bool == true.
163         /// </summary>
164         public byte[] SrcMacMask_bin;
165 
166         /// <summary>
167         /// Specify true if you want to check the destination MAC address.
168         /// </summary>
169         public bool CheckDstMac_bool;
170 
171         /// <summary>
172         /// Destination MAC address (6 bytes), valid only if CheckSrcMac_bool == true.
173         /// </summary>
174         public byte[] DstMacAddress_bin;
175 
176         /// <summary>
177         /// Destination MAC address mask (6 bytes), valid only if CheckSrcMac_bool == true.
178         /// </summary>
179         public byte[] DstMacMask_bin;
180 
181         /// <summary>
182         /// Specify true if you want to check the state of the TCP connection.
183         /// </summary>
184         public bool CheckTcpState_bool;
185 
186         /// <summary>
187         /// Valid only if CheckTcpState_bool == true. Set this field true to match only TCP-established packets. Set this field false to match only TCP-non established packets.
188         /// </summary>
189         public bool Established_bool;
190 
191         /// <summary>
192         /// Set this value to generate delays when packets is passing. Specify the delay period in milliseconds. Specify 0 means no delays to generate. The delays must be 10000 milliseconds at most.
193         /// </summary>
194         public uint Delay_u32;
195 
196         /// <summary>
197         /// Set this value to generate jitters when packets is passing. Specify the ratio of fluctuation of jitters within 0% to 100% range. Specify 0 means no jitters to generate.
198         /// </summary>
199         public uint Jitter_u32;
200 
201         /// <summary>
202         /// Set this value to generate packet losses when packets is passing. Specify the ratio of packet losses within 0% to 100% range. Specify 0 means no packet losses to generate.
203         /// </summary>
204         public uint Loss_u32;
205 
206         /// <summary>
207         /// The specified URL will be mandatory replied to the client as a response for TCP connecting request packets which matches the conditions of this access list entry via this Virtual Hub. To use this setting, you can enforce the web browser of the VPN Client computer to show the specified web site when that web browser tries to access the specific IP address.
208         /// </summary>
209         public string RedirectUrl_str;
210     }
211 
212     /// <summary>
213     /// Add an item to Access List
214     /// </summary>
215     public class VpnRpcAddAccess
216     {
217         /// <summary>
218         /// The Virtual Hub name
219         /// </summary>
220         public string HubName_str;
221 
222         /// <summary>
223         /// Access list (Must be a single item)
224         /// </summary>
225         public VpnAccess[] AccessListSingle;
226     }
227 
228     /// <summary>
229     /// Add CA to HUB
230     /// </summary>
231     public class VpnRpcHubAddCA
232     {
233         /// <summary>
234         /// The Virtual Hub name
235         /// </summary>
236         public string HubName_str;
237 
238         /// <summary>
239         /// The body of the X.509 certificate
240         /// </summary>
241         public byte[] Cert_bin;
242     }
243 
244     /// <summary>
245     /// CRL entry
246     /// </summary>
247     public class VpnRpcCrl
248     {
249         /// <summary>
250         /// The Virtual Hub name
251         /// </summary>
252         public string HubName_str;
253 
254         /// <summary>
255         /// Key ID
256         /// </summary>
257         public uint Key_u32;
258 
259         /// <summary>
260         /// CN, optional
261         /// </summary>
262         public string CommonName_utf;
263 
264         /// <summary>
265         /// O, optional
266         /// </summary>
267         public string Organization_utf;
268 
269         /// <summary>
270         /// OU, optional
271         /// </summary>
272         public string Unit_utf;
273 
274         /// <summary>
275         /// C, optional
276         /// </summary>
277         public string Country_utf;
278 
279         /// <summary>
280         /// ST, optional
281         /// </summary>
282         public string State_utf;
283 
284         /// <summary>
285         /// L, optional
286         /// </summary>
287         public string Local_utf;
288 
289         /// <summary>
290         /// Serial, optional
291         /// </summary>
292         public byte[] Serial_bin;
293 
294         /// <summary>
295         /// MD5 Digest, optional
296         /// </summary>
297         public byte[] DigestMD5_bin;
298 
299         /// <summary>
300         /// SHA1 Digest, optional
301         /// </summary>
302         public byte[] DigestSHA1_bin;
303     }
304 
305     /// <summary>
306     /// EtherIP key list entry
307     /// </summary>
308     public class VpnEtherIpId
309     {
310         /// <summary>
311         /// Specify an ISAKMP Phase 1 ID. The ID must be exactly same as a ID in the configuration of the EtherIP / L2TPv3 Client. You can specify IP address as well as characters as ID, if the EtherIP Client uses IP address as Phase 1 ID. If you specify '*' (asterisk), it will be a wildcard to match any clients which doesn't match other explicit rules.
312         /// </summary>
313         public string Id_str;
314 
315         /// <summary>
316         /// Specify the name of the Virtual Hub to connect.
317         /// </summary>
318         public string HubName_str;
319 
320         /// <summary>
321         /// Specify the username to login to the destination Virtual Hub.
322         /// </summary>
323         public string UserName_str;
324 
325         /// <summary>
326         /// Specify the password to login to the destination Virtual Hub.
327         /// </summary>
328         public string Password_str;
329     }
330 
331     /// <summary>
332     /// Layer-3 virtual interface
333     /// </summary>
334     public class VpnRpcL3If
335     {
336         /// <summary>
337         /// L3 switch name
338         /// </summary>
339         public string Name_str;
340 
341         /// <summary>
342         /// Virtual HUB name
343         /// </summary>
344         public string HubName_str;
345 
346         /// <summary>
347         /// IP address
348         /// </summary>
349         public string IpAddress_ip;
350 
351         /// <summary>
352         /// Subnet mask
353         /// </summary>
354         public string SubnetMask_ip;
355     }
356 
357     /// <summary>
358     /// Layer-3 switch
359     /// </summary>
360     public class VpnRpcL3Sw
361     {
362         /// <summary>
363         /// Layer-3 Switch name
364         /// </summary>
365         public string Name_str;
366     }
367 
368     /// <summary>
369     /// Routing table
370     /// </summary>
371     public class VpnRpcL3Table
372     {
373         /// <summary>
374         /// L3 switch name
375         /// </summary>
376         public string Name_str;
377 
378         /// <summary>
379         /// Network address
380         /// </summary>
381         public string NetworkAddress_ip;
382 
383         /// <summary>
384         /// Subnet mask
385         /// </summary>
386         public string SubnetMask_ip;
387 
388         /// <summary>
389         /// Gateway address
390         /// </summary>
391         public string GatewayAddress_ip;
392 
393         /// <summary>
394         /// Metric
395         /// </summary>
396         public uint Metric_u32;
397     }
398 
399     /// <summary>
400     /// Generic parameter to contain u32, u64, ascii_string and unicode string
401     /// </summary>
402     public class VpnRpcTest
403     {
404         /// <summary>
405         /// A 32-bit integer field
406         /// </summary>
407         public uint IntValue_u32;
408 
409         /// <summary>
410         /// A 64-bit integer field
411         /// </summary>
412         public ulong Int64Value_u64;
413 
414         /// <summary>
415         /// An Ascii string field
416         /// </summary>
417         public string StrValue_str;
418 
419         /// <summary>
420         /// An UTF-8 string field
421         /// </summary>
422         public string UniStrValue_utf;
423     }
424 
425     /// <summary>
426     /// Local Bridge list item
427     /// </summary>
428     public class VpnRpcLocalBridge
429     {
430         /// <summary>
431         /// Physical Ethernet device name
432         /// </summary>
433         public string DeviceName_str;
434 
435         /// <summary>
436         /// The Virtual Hub name
437         /// </summary>
438         public string HubNameLB_str;
439 
440         /// <summary>
441         /// Online flag
442         /// </summary>
443         public bool Online_bool;
444 
445         /// <summary>
446         /// Running flag
447         /// </summary>
448         public bool Active_bool;
449 
450         /// <summary>
451         /// Specify true if you are using a tap device rather than a network adapter for the bridge destination (only supported for Linux versions).
452         /// </summary>
453         public bool TapMode_bool;
454     }
455 
456     /// <summary>
457     /// Create, configure, and get the group
458     /// </summary>
459     public class VpnRpcSetGroup
460     {
461         /// <summary>
462         /// The Virtual Hub name
463         /// </summary>
464         public string HubName_str;
465 
466         /// <summary>
467         /// The group name
468         /// </summary>
469         public string Name_str;
470 
471         /// <summary>
472         /// Optional real name (full name) of the group, allow using any Unicode characters
473         /// </summary>
474         public string Realname_utf;
475 
476         /// <summary>
477         /// Optional, specify a description of the group
478         /// </summary>
479         public string Note_utf;
480 
481         /// <summary>
482         /// Number of broadcast packets (Recv)
483         /// </summary>
484         [JsonProperty("Recv.BroadcastBytes_u64")]
485         public ulong Recv_BroadcastBytes_u64;
486 
487         /// <summary>
488         /// Broadcast bytes (Recv)
489         /// </summary>
490         [JsonProperty("Recv.BroadcastCount_u64")]
491         public ulong Recv_BroadcastCount_u64;
492 
493         /// <summary>
494         /// Unicast count (Recv)
495         /// </summary>
496         [JsonProperty("Recv.UnicastBytes_u64")]
497         public ulong Recv_UnicastBytes_u64;
498 
499         /// <summary>
500         /// Unicast bytes (Recv)
501         /// </summary>
502         [JsonProperty("Recv.UnicastCount_u64")]
503         public ulong Recv_UnicastCount_u64;
504 
505         /// <summary>
506         /// Number of broadcast packets (Send)
507         /// </summary>
508         [JsonProperty("Send.BroadcastBytes_u64")]
509         public ulong Send_BroadcastBytes_u64;
510 
511         /// <summary>
512         /// Broadcast bytes (Send)
513         /// </summary>
514         [JsonProperty("Send.BroadcastCount_u64")]
515         public ulong Send_BroadcastCount_u64;
516 
517         /// <summary>
518         /// Unicast bytes (Send)
519         /// </summary>
520         [JsonProperty("Send.UnicastBytes_u64")]
521         public ulong Send_UnicastBytes_u64;
522 
523         /// <summary>
524         /// Unicast bytes (Send)
525         /// </summary>
526         [JsonProperty("Send.UnicastCount_u64")]
527         public ulong Send_UnicastCount_u64;
528 
529         /// <summary>
530         /// The flag whether to use security policy
531         /// </summary>
532         public bool UsePolicy_bool;
533 
534         // ---- Start of Security policy ---
535         /// <summary>
536         /// Security policy: Allow Access. The users, which this policy value is true, have permission to make VPN connection to VPN Server.
537         /// </summary>
538         [JsonProperty("policy:Access_bool")]
539         public bool SecPol_Access_bool;
540 
541         /// <summary>
542         /// Security policy: Filter DHCP Packets (IPv4). All IPv4 DHCP packets in sessions defined this policy will be filtered.
543         /// </summary>
544         [JsonProperty("policy:DHCPFilter_bool")]
545         public bool SecPol_DHCPFilter_bool;
546 
547         /// <summary>
548         /// Security policy: Disallow DHCP Server Operation (IPv4). Computers connected to sessions that have this policy setting will not be allowed to become a DHCP server and distribute IPv4 addresses to DHCP clients.
549         /// </summary>
550         [JsonProperty("policy:DHCPNoServer_bool")]
551         public bool SecPol_DHCPNoServer_bool;
552 
553         /// <summary>
554         /// Security policy: Enforce DHCP Allocated IP Addresses (IPv4). Computers in sessions that have this policy setting will only be able to use IPv4 addresses allocated by a DHCP server on the virtual network side.
555         /// </summary>
556         [JsonProperty("policy:DHCPForce_bool")]
557         public bool SecPol_DHCPForce_bool;
558 
559         /// <summary>
560         /// Security policy: Deny Bridge Operation. Bridge-mode connections are denied for user sessions that have this policy setting. Even in cases when the Ethernet Bridge is configured in the client side, communication will not be possible.
561         /// </summary>
562         [JsonProperty("policy:NoBridge_bool")]
563         public bool SecPol_NoBridge_bool;
564 
565         /// <summary>
566         /// Security policy: Deny Routing Operation (IPv4). IPv4 routing will be denied for sessions that have this policy setting. Even in the case where the IP router is operating on the user client side, communication will not be possible.
567         /// </summary>
568         [JsonProperty("policy:NoRouting_bool")]
569         public bool SecPol_NoRouting_bool;
570 
571         /// <summary>
572         /// Security policy: Deny MAC Addresses Duplication. The use of duplicating MAC addresses that are in use by computers of different sessions cannot be used by sessions with this policy setting.
573         /// </summary>
574         [JsonProperty("policy:CheckMac_bool")]
575         public bool SecPol_CheckMac_bool;
576 
577         /// <summary>
578         /// Security policy: Deny IP Address Duplication (IPv4). The use of duplicating IPv4 addresses that are in use by computers of different sessions cannot be used by sessions with this policy setting.
579         /// </summary>
580         [JsonProperty("policy:CheckIP_bool")]
581         public bool SecPol_CheckIP_bool;
582 
583         /// <summary>
584         /// Security policy: Deny Non-ARP / Non-DHCP / Non-ICMPv6 broadcasts. The sending or receiving of broadcast packets that are not ARP protocol, DHCP protocol, nor ICMPv6 on the virtual network will not be allowed for sessions with this policy setting.
585         /// </summary>
586         [JsonProperty("policy:ArpDhcpOnly_bool")]
587         public bool SecPol_ArpDhcpOnly_bool;
588 
589         /// <summary>
590         /// Security policy: Privacy Filter Mode. All direct communication between sessions with the privacy filter mode policy setting will be filtered.
591         /// </summary>
592         [JsonProperty("policy:PrivacyFilter_bool")]
593         public bool SecPol_PrivacyFilter_bool;
594 
595         /// <summary>
596         /// Security policy: Deny Operation as TCP/IP Server (IPv4). Computers of sessions with this policy setting can't listen and accept TCP/IP connections in IPv4.
597         /// </summary>
598         [JsonProperty("policy:NoServer_bool")]
599         public bool SecPol_NoServer_bool;
600 
601         /// <summary>
602         /// Security policy: Unlimited Number of Broadcasts. If a computer of a session with this policy setting sends broadcast packets of a number unusually larger than what would be considered normal on the virtual network, there will be no automatic limiting.
603         /// </summary>
604         [JsonProperty("policy:NoBroadcastLimiter_bool")]
605         public bool SecPol_NoBroadcastLimiter_bool;
606 
607         /// <summary>
608         /// Security policy: Allow Monitoring Mode. Users with this policy setting will be granted to connect to the Virtual Hub in Monitoring Mode. Sessions in Monitoring Mode are able to monitor (tap) all packets flowing through the Virtual Hub.
609         /// </summary>
610         [JsonProperty("policy:MonitorPort_bool")]
611         public bool SecPol_MonitorPort_bool;
612 
613         /// <summary>
614         /// Security policy: Maximum Number of TCP Connections. For sessions with this policy setting, this sets the maximum number of physical TCP connections consists in a physical VPN session.
615         /// </summary>
616         [JsonProperty("policy:MaxConnection_u32")]
617         public uint SecPol_MaxConnection_u32;
618 
619         /// <summary>
620         /// Security policy: Time-out Period. For sessions with this policy setting, this sets, in seconds, the time-out period to wait before disconnecting a session when communication trouble occurs between the VPN Client / VPN Server.
621         /// </summary>
622         [JsonProperty("policy:TimeOut_u32")]
623         public uint SecPol_TimeOut_u32;
624 
625         /// <summary>
626         /// Security policy: Maximum Number of MAC Addresses. For sessions with this policy setting, this limits the number of MAC addresses per session.
627         /// </summary>
628         [JsonProperty("policy:MaxMac_u32")]
629         public uint SecPol_MaxMac_u32;
630 
631         /// <summary>
632         /// Security policy: Maximum Number of IP Addresses (IPv4). For sessions with this policy setting, this specifies the number of IPv4 addresses that can be registered for a single session.
633         /// </summary>
634         [JsonProperty("policy:MaxIP_u32")]
635         public uint SecPol_MaxIP_u32;
636 
637         /// <summary>
638         /// Security policy: Upload Bandwidth. For sessions with this policy setting, this limits the traffic bandwidth that is in the inwards direction from outside to inside the Virtual Hub.
639         /// </summary>
640         [JsonProperty("policy:MaxUpload_u32")]
641         public uint SecPol_MaxUpload_u32;
642 
643         /// <summary>
644         /// Security policy: Download Bandwidth. For sessions with this policy setting, this limits the traffic bandwidth that is in the outwards direction from inside the Virtual Hub to outside the Virtual Hub.
645         /// </summary>
646         [JsonProperty("policy:MaxDownload_u32")]
647         public uint SecPol_MaxDownload_u32;
648 
649         /// <summary>
650         /// Security policy: Deny Changing Password. The users which use password authentication with this policy setting are not allowed to change their own password from the VPN Client Manager or similar.
651         /// </summary>
652         [JsonProperty("policy:FixPassword_bool")]
653         public bool SecPol_FixPassword_bool;
654 
655         /// <summary>
656         /// Security policy: Maximum Number of Multiple Logins. Users with this policy setting are unable to have more than this number of concurrent logins. Bridge Mode sessions are not subjects to this policy.
657         /// </summary>
658         [JsonProperty("policy:MultiLogins_u32")]
659         public uint SecPol_MultiLogins_u32;
660 
661         /// <summary>
662         /// Security policy: Deny VoIP / QoS Function. Users with this security policy are unable to use VoIP / QoS functions in VPN connection sessions.
663         /// </summary>
664         [JsonProperty("policy:NoQoS_bool")]
665         public bool SecPol_NoQoS_bool;
666 
667         /// <summary>
668         /// Security policy: Filter RS / RA Packets (IPv6). All ICMPv6 packets which the message-type is 133 (Router Solicitation) or 134 (Router Advertisement) in sessions defined this policy will be filtered. As a result, an IPv6 client will be unable to use IPv6 address prefix auto detection and IPv6 default gateway auto detection.
669         /// </summary>
670         [JsonProperty("policy:RSandRAFilter_bool")]
671         public bool SecPol_RSandRAFilter_bool;
672 
673         /// <summary>
674         /// Security policy: Filter RA Packets (IPv6). All ICMPv6 packets which the message-type is 134 (Router Advertisement) in sessions defined this policy will be filtered. As a result, a malicious users will be unable to spread illegal IPv6 prefix or default gateway advertisements on the network.
675         /// </summary>
676         [JsonProperty("policy:RAFilter_bool")]
677         public bool SecPol_RAFilter_bool;
678 
679         /// <summary>
680         /// Security policy: Filter DHCP Packets (IPv6). All IPv6 DHCP packets in sessions defined this policy will be filtered.
681         /// </summary>
682         [JsonProperty("policy:DHCPv6Filter_bool")]
683         public bool SecPol_DHCPv6Filter_bool;
684 
685         /// <summary>
686         /// Security policy: Disallow DHCP Server Operation (IPv6). Computers connected to sessions that have this policy setting will not be allowed to become a DHCP server and distribute IPv6 addresses to DHCP clients.
687         /// </summary>
688         [JsonProperty("policy:DHCPv6NoServer_bool")]
689         public bool SecPol_DHCPv6NoServer_bool;
690 
691         /// <summary>
692         /// Security policy: Deny Routing Operation (IPv6). IPv6 routing will be denied for sessions that have this policy setting. Even in the case where the IP router is operating on the user client side, communication will not be possible.
693         /// </summary>
694         [JsonProperty("policy:NoRoutingV6_bool")]
695         public bool SecPol_NoRoutingV6_bool;
696 
697         /// <summary>
698         /// Security policy: Deny IP Address Duplication (IPv6). The use of duplicating IPv6 addresses that are in use by computers of different sessions cannot be used by sessions with this policy setting.
699         /// </summary>
700         [JsonProperty("policy:CheckIPv6_bool")]
701         public bool SecPol_CheckIPv6_bool;
702 
703         /// <summary>
704         /// Security policy: Deny Operation as TCP/IP Server (IPv6). Computers of sessions with this policy setting can't listen and accept TCP/IP connections in IPv6.
705         /// </summary>
706         [JsonProperty("policy:NoServerV6_bool")]
707         public bool SecPol_NoServerV6_bool;
708 
709         /// <summary>
710         /// Security policy: Maximum Number of IP Addresses (IPv6). For sessions with this policy setting, this specifies the number of IPv6 addresses that can be registered for a single session.
711         /// </summary>
712         [JsonProperty("policy:MaxIPv6_u32")]
713         public uint SecPol_MaxIPv6_u32;
714 
715         /// <summary>
716         /// Security policy: Disallow Password Save in VPN Client. For users with this policy setting, when the user is using *standard* password authentication, the user will be unable to save the password in VPN Client. The user will be required to input passwords for every time to connect a VPN. This will improve the security. If this policy is enabled, VPN Client Version 2.0 will be denied to access.
717         /// </summary>
718         [JsonProperty("policy:NoSavePassword_bool")]
719         public bool SecPol_NoSavePassword_bool;
720 
721         /// <summary>
722         /// Security policy: VPN Client Automatic Disconnect. For users with this policy setting, a user's VPN session will be disconnected automatically after the specific period will elapse. In this case no automatic re-connection will be performed. This can prevent a lot of inactive VPN Sessions. If this policy is enabled, VPN Client Version 2.0 will be denied to access.
723         /// </summary>
724         [JsonProperty("policy:AutoDisconnect_u32")]
725         public uint SecPol_AutoDisconnect_u32;
726 
727         /// <summary>
728         /// Security policy: Filter All IPv4 Packets. All IPv4 and ARP packets in sessions defined this policy will be filtered.
729         /// </summary>
730         [JsonProperty("policy:FilterIPv4_bool")]
731         public bool SecPol_FilterIPv4_bool;
732 
733         /// <summary>
734         /// Security policy: Filter All IPv6 Packets. All IPv6 packets in sessions defined this policy will be filtered.
735         /// </summary>
736         [JsonProperty("policy:FilterIPv6_bool")]
737         public bool SecPol_FilterIPv6_bool;
738 
739         /// <summary>
740         /// Security policy: Filter All Non-IP Packets. All non-IP packets in sessions defined this policy will be filtered. "Non-IP packet" mean a packet which is not IPv4, ARP nor IPv6. Any tagged-VLAN packets via the Virtual Hub will be regarded as non-IP packets.
741         /// </summary>
742         [JsonProperty("policy:FilterNonIP_bool")]
743         public bool SecPol_FilterNonIP_bool;
744 
745         /// <summary>
746         /// Security policy: No Default-Router on IPv6 RA. In all VPN Sessions defines this policy, any IPv6 RA (Router Advertisement) packet with non-zero value in the router-lifetime will set to zero-value. This is effective to avoid the horrible behavior from the IPv6 routing confusion which is caused by the VPN client's attempts to use the remote-side IPv6 router as its local IPv6 router.
747         /// </summary>
748         [JsonProperty("policy:NoIPv6DefaultRouterInRA_bool")]
749         public bool SecPol_NoIPv6DefaultRouterInRA_bool;
750 
751         /// <summary>
752         /// Security policy: No Default-Router on IPv6 RA (physical IPv6). In all VPN Sessions defines this policy (only when the physical communication protocol between VPN Client / VPN Bridge and VPN Server is IPv6), any IPv6 RA (Router Advertisement) packet with non-zero value in the router-lifetime will set to zero-value. This is effective to avoid the horrible behavior from the IPv6 routing confusion which is caused by the VPN client's attempts to use the remote-side IPv6 router as its local IPv6 router.
753         /// </summary>
754         [JsonProperty("policy:NoIPv6DefaultRouterInRAWhenIPv6_bool")]
755         public bool SecPol_NoIPv6DefaultRouterInRAWhenIPv6_bool;
756 
757         /// <summary>
758         /// Security policy: VLAN ID (IEEE802.1Q). You can specify the VLAN ID on the security policy. All VPN Sessions defines this policy, all Ethernet packets toward the Virtual Hub from the user will be inserted a VLAN tag (IEEE 802.1Q) with the VLAN ID. The user can also receive only packets with a VLAN tag which has the same VLAN ID. (Receiving process removes the VLAN tag automatically.) Any Ethernet packets with any other VLAN IDs or non-VLAN packets will not be received. All VPN Sessions without this policy definition can send / receive any kinds of Ethernet packets regardless of VLAN tags, and VLAN tags are not inserted or removed automatically. Any tagged-VLAN packets via the Virtual Hub will be regarded as non-IP packets. Therefore, tagged-VLAN packets are not subjects for IPv4 / IPv6 security policies, access lists nor other IPv4 / IPv6 specific deep processing.
759         /// </summary>
760         [JsonProperty("policy:VLanId_u32")]
761         public uint SecPol_VLanId_u32;
762 
763         /// <summary>
764         /// Security policy: Whether version 3.0 (must be true)
765         /// </summary>
766         [JsonProperty("policy:Ver3_bool")]
767         public bool SecPol_Ver3_bool = true;
768         // ---- End of Security policy ---
769     }
770 
771     /// <summary>
772     /// Hub types
773     /// </summary>
774     public enum VpnRpcHubType
775     {
776         /// <summary>
777         /// Stand-alone HUB
778         /// </summary>
779         Standalone = 0,
780 
781         /// <summary>
782         /// Static HUB
783         /// </summary>
784         FarmStatic = 1,
785 
786         /// <summary>
787         /// Dynamic HUB
788         /// </summary>
789         FarmDynamic = 2,
790     }
791 
792     /// <summary>
793     /// Create a HUB
794     /// </summary>
795     public class VpnRpcCreateHub
796     {
797         /// <summary>
798         /// Specify the name of the Virtual Hub to create / update.
799         /// </summary>
800         public string HubName_str;
801 
802         /// <summary>
803         /// Specify an administrator password when the administrator password is going to be set for the Virtual Hub. On the update, leave it to empty string if you don't want to change the password.
804         /// </summary>
805         public string AdminPasswordPlainText_str;
806 
807         /// <summary>
808         /// Online flag
809         /// </summary>
810         public bool Online_bool;
811 
812         /// <summary>
813         /// Maximum number of VPN sessions
814         /// </summary>
815         public uint MaxSession_u32;
816 
817         /// <summary>
818         /// No Enum flag. By enabling this option, the VPN Client user will be unable to enumerate this Virtual Hub even if they send a Virtual Hub enumeration request to the VPN Server.
819         /// </summary>
820         public bool NoEnum_bool;
821 
822         /// <summary>
823         /// Type of the Virtual Hub (Valid only for Clustered VPN Servers)
824         /// </summary>
825         public VpnRpcHubType HubType_u32;
826     }
827 
828     public enum VpnRpcClientAuthType
829     {
830         /// <summary>
831         /// Anonymous authentication
832         /// </summary>
833         Anonymous = 0,
834 
835         /// <summary>
836         /// SHA-0 hashed password authentication
837         /// </summary>
838         SHA0_Hashed_Password = 1,
839 
840         /// <summary>
841         /// Plain password authentication
842         /// </summary>
843         PlainPassword = 2,
844 
845         /// <summary>
846         /// Certificate authentication
847         /// </summary>
848         Cert = 3,
849     }
850 
851     /// <summary>
852     /// Create and set of link
853     /// </summary>
854     public class VpnRpcCreateLink
855     {
856         /// <summary>
857         /// The Virtual Hub name
858         /// </summary>
859         public string HubName_Ex_str;
860 
861         /// <summary>
862         /// Online flag
863         /// </summary>
864         public bool Online_bool;
865 
866         /// <summary>
867         /// The flag to enable validation for the server certificate
868         /// </summary>
869         public bool CheckServerCert_bool;
870 
871         /// <summary>
872         /// The body of server X.509 certificate to compare. Valid only if the CheckServerCert_bool flag is true.
873         /// </summary>
874         public byte[] ServerCert_bin;
875 
876         // ---- Start of Client Option Parameters ---
877         /// <summary>
878         /// Client Option Parameters: Specify the name of the Cascade Connection
879         /// </summary>
880         [JsonProperty("AccountName_utf")]
881         public string ClientOption_AccountName_utf;
882 
883         /// <summary>
884         /// Client Option Parameters: Specify the hostname of the destination VPN Server. You can also specify by IP address.
885         /// </summary>
886         [JsonProperty("Hostname_str")]
887         public string ClientOption_Hostname_str;
888 
889         /// <summary>
890         /// Client Option Parameters: Specify the port number of the destination VPN Server.
891         /// </summary>
892         [JsonProperty("Port_u32")]
893         public uint ClientOption_Port_u32;
894 
895         /// <summary>
896         /// Client Option Parameters: The type of the proxy server
897         /// </summary>
898         [JsonProperty("ProxyType_u32")]
899         public VpnRpcProxyType ClientOption_ProxyType_u32;
900 
901         /// <summary>
902         /// Client Option Parameters: The hostname or IP address of the proxy server name
903         /// </summary>
904         [JsonProperty("ProxyName_str")]
905         public string ClientOption_ProxyName_str;
906 
907         /// <summary>
908         /// Client Option Parameters: The port number of the proxy server
909         /// </summary>
910         [JsonProperty("ProxyPort_u32")]
911         public uint ClientOption_ProxyPort_u32;
912 
913         /// <summary>
914         /// Client Option Parameters: The username to connect to the proxy server
915         /// </summary>
916         [JsonProperty("ProxyUsername_str")]
917         public string ClientOption_ProxyUsername_str;
918 
919         /// <summary>
920         /// Client Option Parameters: The password to connect to the proxy server
921         /// </summary>
922         [JsonProperty("ProxyPassword_str")]
923         public string ClientOption_ProxyPassword_str;
924 
925         /// <summary>
926         /// Client Option Parameters: The Virtual Hub on the destination VPN Server
927         /// </summary>
928         [JsonProperty("HubName_str")]
929         public string ClientOption_HubName_str;
930 
931         /// <summary>
932         /// Client Option Parameters: Number of TCP Connections to Use in VPN Communication
933         /// </summary>
934         [JsonProperty("MaxConnection_u32")]
935         public uint ClientOption_MaxConnection_u32;
936 
937         /// <summary>
938         /// Client Option Parameters: The flag to enable the encryption on the communication
939         /// </summary>
940         [JsonProperty("UseEncrypt_bool")]
941         public bool ClientOption_UseEncrypt_bool;
942 
943         /// <summary>
944         /// Client Option Parameters: Enable / Disable Data Compression when Communicating by Cascade Connection
945         /// </summary>
946         [JsonProperty("UseCompress_bool")]
947         public bool ClientOption_UseCompress_bool;
948 
949         /// <summary>
950         /// Client Option Parameters: Specify true when enabling half duplex mode. When using two or more TCP connections for VPN communication, it is possible to use Half Duplex Mode. By enabling half duplex mode it is possible to automatically fix data transmission direction as half and half for each TCP connection. In the case where a VPN using 8 TCP connections is established, for example, when half-duplex is enabled, communication can be fixes so that 4 TCP connections are dedicated to the upload direction and the other 4 connections are dedicated to the download direction.
951         /// </summary>
952         [JsonProperty("HalfConnection_bool")]
953         public bool ClientOption_HalfConnection_bool;
954 
955         /// <summary>
956         /// Client Option Parameters: Connection attempt interval when additional connection will be established
957         /// </summary>
958         [JsonProperty("AdditionalConnectionInterval_u32")]
959         public uint ClientOption_AdditionalConnectionInterval_u32;
960 
961         /// <summary>
962         /// Client Option Parameters: Connection Life of Each TCP Connection (0 for no keep-alive)
963         /// </summary>
964         [JsonProperty("ConnectionDisconnectSpan_u32")]
965         public uint ClientOption_ConnectionDisconnectSpan_u32;
966 
967         /// <summary>
968         /// Client Option Parameters: Disable QoS Control Function if the value is true
969         /// </summary>
970         [JsonProperty("DisableQoS_bool")]
971         public bool ClientOption_DisableQoS_bool;
972 
973         /// <summary>
974         /// Client Option Parameters: Do not use TLS 1.x of the value is true
975         /// </summary>
976         [JsonProperty("NoTls1_bool")]
977         public bool ClientOption_NoTls1_bool;
978 
979         /// <summary>
980         /// Client Option Parameters: Do not use UDP acceleration mode if the value is true
981         /// </summary>
982         [JsonProperty("NoUdpAcceleration_bool")]
983         public bool ClientOption_NoUdpAcceleration_bool;
984         // ---- End of Client Option ---
985 
986         // ---- Start of Client Auth Parameters ---
987         /// <summary>
988         /// Authentication type
989         /// </summary>
990         [JsonProperty("AuthType_u32")]
991         public VpnRpcClientAuthType ClientAuth_AuthType_u32;
992 
993         /// <summary>
994         /// User name
995         /// </summary>
996         [JsonProperty("Username_str")]
997         public string ClientAuth_Username_str;
998 
999         /// <summary>
1000         /// SHA-0 Hashed password. Valid only if ClientAuth_AuthType_u32 == SHA0_Hashed_Password (1). The SHA-0 hashed password must be caluclated by the SHA0(UpperCase(username_ascii_string) + password_ascii_string).
1001         /// </summary>
1002         [JsonProperty("HashedPassword_bin")]
1003         public byte[] ClientAuth_HashedPassword_bin;
1004 
1005         /// <summary>
1006         /// Plaintext Password. Valid only if ClientAuth_AuthType_u32 == PlainPassword (2).
1007         /// </summary>
1008         [JsonProperty("PlainPassword_str")]
1009         public string ClientAuth_PlainPassword_str;
1010 
1011         /// <summary>
1012         /// Client certificate. Valid only if ClientAuth_AuthType_u32 == Cert (3).
1013         /// </summary>
1014         [JsonProperty("ClientX_bin")]
1015         public byte[] ClientAuth_ClientX_bin;
1016 
1017         /// <summary>
1018         /// Client private key of the certificate. Valid only if ClientAuth_AuthType_u32 == Cert (3).
1019         /// </summary>
1020         [JsonProperty("ClientK_bin")]
1021         public byte[] ClientAuth_ClientK_bin;
1022 
1023         /// <summary>
1024         /// Security policy: Filter DHCP Packets (IPv4). All IPv4 DHCP packets in sessions defined this policy will be filtered.
1025         /// </summary>
1026         [JsonProperty("policy:DHCPFilter_bool")]
1027         public bool SecPol_DHCPFilter_bool;
1028 
1029         /// <summary>
1030         /// Security policy: Disallow DHCP Server Operation (IPv4). Computers connected to sessions that have this policy setting will not be allowed to become a DHCP server and distribute IPv4 addresses to DHCP clients.
1031         /// </summary>
1032         [JsonProperty("policy:DHCPNoServer_bool")]
1033         public bool SecPol_DHCPNoServer_bool;
1034 
1035         /// <summary>
1036         /// Security policy: Enforce DHCP Allocated IP Addresses (IPv4). Computers in sessions that have this policy setting will only be able to use IPv4 addresses allocated by a DHCP server on the virtual network side.
1037         /// </summary>
1038         [JsonProperty("policy:DHCPForce_bool")]
1039         public bool SecPol_DHCPForce_bool;
1040 
1041         /// <summary>
1042         /// Security policy: Prohibit the duplicate MAC address
1043         /// </summary>
1044         /// Security policy: Deny MAC Addresses Duplication. The use of duplicating MAC addresses that are in use by computers of different sessions cannot be used by sessions with this policy setting.
1045         public bool SecPol_CheckMac_bool;
1046 
1047         /// <summary>
1048         /// Security policy: Prohibit a duplicate IP address (IPv4)
1049         /// </summary>
1050         /// Security policy: Deny IP Address Duplication (IPv4). The use of duplicating IPv4 addresses that are in use by computers of different sessions cannot be used by sessions with this policy setting.
1051         public bool SecPol_CheckIP_bool;
1052 
1053         /// <summary>
1054         /// Security policy: Deny Non-ARP / Non-DHCP / Non-ICMPv6 broadcasts. The sending or receiving of broadcast packets that are not ARP protocol, DHCP protocol, nor ICMPv6 on the virtual network will not be allowed for sessions with this policy setting.
1055         /// </summary>
1056         [JsonProperty("policy:ArpDhcpOnly_bool")]
1057         public bool SecPol_ArpDhcpOnly_bool;
1058 
1059         /// <summary>
1060         /// Security policy: Privacy Filter Mode. All direct communication between sessions with the privacy filter mode policy setting will be filtered.
1061         /// </summary>
1062         [JsonProperty("policy:PrivacyFilter_bool")]
1063         public bool SecPol_PrivacyFilter_bool;
1064 
1065         /// <summary>
1066         /// Security policy: Deny Operation as TCP/IP Server (IPv4). Computers of sessions with this policy setting can't listen and accept TCP/IP connections in IPv4.
1067         /// </summary>
1068         [JsonProperty("policy:NoServer_bool")]
1069         public bool SecPol_NoServer_bool;
1070 
1071         /// <summary>
1072         /// Security policy: Unlimited Number of Broadcasts. If a computer of a session with this policy setting sends broadcast packets of a number unusually larger than what would be considered normal on the virtual network, there will be no automatic limiting.
1073         /// </summary>
1074         [JsonProperty("policy:NoBroadcastLimiter_bool")]
1075         public bool SecPol_NoBroadcastLimiter_bool;
1076 
1077         /// <summary>
1078         /// Security policy: Maximum Number of MAC Addresses. For sessions with this policy setting, this limits the number of MAC addresses per session.
1079         /// </summary>
1080         [JsonProperty("policy:MaxMac_u32")]
1081         public uint SecPol_MaxMac_u32;
1082 
1083         /// <summary>
1084         /// Security policy: Maximum Number of IP Addresses (IPv4). For sessions with this policy setting, this specifies the number of IPv4 addresses that can be registered for a single session.
1085         /// </summary>
1086         [JsonProperty("policy:MaxIP_u32")]
1087         public uint SecPol_MaxIP_u32;
1088 
1089         /// <summary>
1090         /// Security policy: Upload Bandwidth. For sessions with this policy setting, this limits the traffic bandwidth that is in the inwards direction from outside to inside the Virtual Hub.
1091         /// </summary>
1092         [JsonProperty("policy:MaxUpload_u32")]
1093         public uint SecPol_MaxUpload_u32;
1094 
1095         /// <summary>
1096         /// Security policy: Download Bandwidth. For sessions with this policy setting, this limits the traffic bandwidth that is in the outwards direction from inside the Virtual Hub to outside the Virtual Hub.
1097         /// </summary>
1098         [JsonProperty("policy:MaxDownload_u32")]
1099         public uint SecPol_MaxDownload_u32;
1100 
1101         /// <summary>
1102         /// Security policy: Filter RS / RA Packets (IPv6). All ICMPv6 packets which the message-type is 133 (Router Solicitation) or 134 (Router Advertisement) in sessions defined this policy will be filtered. As a result, an IPv6 client will be unable to use IPv6 address prefix auto detection and IPv6 default gateway auto detection.
1103         /// </summary>
1104         [JsonProperty("policy:RSandRAFilter_bool")]
1105         public bool SecPol_RSandRAFilter_bool;
1106 
1107         /// <summary>
1108         /// Security policy: Filter the router advertisement packet (IPv6)
1109         /// </summary>
1110         /// Security policy: Filter RA Packets (IPv6). All ICMPv6 packets which the message-type is 134 (Router Advertisement) in sessions defined this policy will be filtered. As a result, a malicious users will be unable to spread illegal IPv6 prefix or default gateway advertisements on the network.
1111         public bool SecPol_RAFilter_bool;
1112 
1113         /// <summary>
1114         /// Security policy: Filter DHCP Packets (IPv6). All IPv6 DHCP packets in sessions defined this policy will be filtered.
1115         /// </summary>
1116         [JsonProperty("policy:DHCPv6Filter_bool")]
1117         public bool SecPol_DHCPv6Filter_bool;
1118 
1119         /// <summary>
1120         /// Security policy: Disallow DHCP Server Operation (IPv6). Computers connected to sessions that have this policy setting will not be allowed to become a DHCP server and distribute IPv6 addresses to DHCP clients.
1121         /// </summary>
1122         [JsonProperty("policy:DHCPv6NoServer_bool")]
1123         public bool SecPol_DHCPv6NoServer_bool;
1124 
1125         /// <summary>
1126         /// Security policy: Prohibit the duplicate IP address (IPv6)
1127         /// </summary>
1128         /// Security policy: Deny IP Address Duplication (IPv6). The use of duplicating IPv6 addresses that are in use by computers of different sessions cannot be used by sessions with this policy setting.
1129         public bool SecPol_CheckIPv6_bool;
1130 
1131         /// <summary>
1132         /// Security policy: Deny Operation as TCP/IP Server (IPv6). Computers of sessions with this policy setting can't listen and accept TCP/IP connections in IPv6.
1133         /// </summary>
1134         [JsonProperty("policy:NoServerV6_bool")]
1135         public bool SecPol_NoServerV6_bool;
1136 
1137         /// <summary>
1138         /// Security policy: Maximum Number of IP Addresses (IPv6). For sessions with this policy setting, this specifies the number of IPv6 addresses that can be registered for a single session.
1139         /// </summary>
1140         [JsonProperty("policy:MaxIPv6_u32")]
1141         public uint SecPol_MaxIPv6_u32;
1142 
1143         /// <summary>
1144         /// Security policy: Filter All IPv4 Packets. All IPv4 and ARP packets in sessions defined this policy will be filtered.
1145         /// </summary>
1146         [JsonProperty("policy:FilterIPv4_bool")]
1147         public bool SecPol_FilterIPv4_bool;
1148 
1149         /// <summary>
1150         /// Security policy: Filter All IPv6 Packets. All IPv6 packets in sessions defined this policy will be filtered.
1151         /// </summary>
1152         [JsonProperty("policy:FilterIPv6_bool")]
1153         public bool SecPol_FilterIPv6_bool;
1154 
1155         /// <summary>
1156         /// Security policy: Filter All Non-IP Packets. All non-IP packets in sessions defined this policy will be filtered. "Non-IP packet" mean a packet which is not IPv4, ARP nor IPv6. Any tagged-VLAN packets via the Virtual Hub will be regarded as non-IP packets.
1157         /// </summary>
1158         [JsonProperty("policy:FilterNonIP_bool")]
1159         public bool SecPol_FilterNonIP_bool;
1160 
1161         /// <summary>
1162         /// Security policy: No Default-Router on IPv6 RA. In all VPN Sessions defines this policy, any IPv6 RA (Router Advertisement) packet with non-zero value in the router-lifetime will set to zero-value. This is effective to avoid the horrible behavior from the IPv6 routing confusion which is caused by the VPN client's attempts to use the remote-side IPv6 router as its local IPv6 router.
1163         /// </summary>
1164         [JsonProperty("policy:NoIPv6DefaultRouterInRA_bool")]
1165         public bool SecPol_NoIPv6DefaultRouterInRA_bool;
1166 
1167         /// <summary>
1168         /// Security policy: VLAN ID (IEEE802.1Q). You can specify the VLAN ID on the security policy. All VPN Sessions defines this policy, all Ethernet packets toward the Virtual Hub from the user will be inserted a VLAN tag (IEEE 802.1Q) with the VLAN ID. The user can also receive only packets with a VLAN tag which has the same VLAN ID. (Receiving process removes the VLAN tag automatically.) Any Ethernet packets with any other VLAN IDs or non-VLAN packets will not be received. All VPN Sessions without this policy definition can send / receive any kinds of Ethernet packets regardless of VLAN tags, and VLAN tags are not inserted or removed automatically. Any tagged-VLAN packets via the Virtual Hub will be regarded as non-IP packets. Therefore, tagged-VLAN packets are not subjects for IPv4 / IPv6 security policies, access lists nor other IPv4 / IPv6 specific deep processing.
1169         /// </summary>
1170         [JsonProperty("policy:VLanId_u32")]
1171         public uint SecPol_VLanId_u32;
1172 
1173         /// <summary>
1174         /// Security policy: Whether version 3.0 (must be true)
1175         /// </summary>
1176         [JsonProperty("policy:Ver3_bool")]
1177         public bool SecPol_Ver3_bool = true;
1178         // ---- End of Security policy ---
1179     }
1180 
1181     /// <summary>
1182     /// Listener
1183     /// </summary>
1184     public class VpnRpcListener
1185     {
1186         /// <summary>
1187         /// Port number (Range: 1 - 65535)
1188         /// </summary>
1189         public uint Port_u32;
1190 
1191         /// <summary>
1192         /// Active state
1193         /// </summary>
1194         public bool Enable_bool;
1195     }
1196 
1197     /// <summary>
1198     /// User authentication type (server side)
1199     /// </summary>
1200     public enum VpnRpcUserAuthType
1201     {
1202         /// <summary>
1203         /// Anonymous authentication
1204         /// </summary>
1205         Anonymous = 0,
1206 
1207         /// <summary>
1208         /// Password authentication
1209         /// </summary>
1210         Password = 1,
1211 
1212         /// <summary>
1213         /// User certificate authentication
1214         /// </summary>
1215         UserCert = 2,
1216 
1217         /// <summary>
1218         /// Root certificate which is issued by trusted Certificate Authority
1219         /// </summary>
1220         RootCert = 3,
1221 
1222         /// <summary>
1223         /// Radius authentication
1224         /// </summary>
1225         Radius = 4,
1226 
1227         /// <summary>
1228         /// Windows NT authentication
1229         /// </summary>
1230         NTDomain = 5,
1231     }
1232 
1233     /// <summary>
1234     /// Create, configure, and get the user
1235     /// </summary>
1236     public class VpnRpcSetUser
1237     {
1238         /// <summary>
1239         /// The Virtual Hub name
1240         /// </summary>
1241         public string HubName_str;
1242 
1243         /// <summary>
1244         /// Specify the user name of the user
1245         /// </summary>
1246         public string Name_str;
1247 
1248         /// <summary>
1249         /// Assigned group name for the user
1250         /// </summary>
1251         public string GroupName_str;
1252 
1253         /// <summary>
1254         /// Optional real name (full name) of the user, allow using any Unicode characters
1255         /// </summary>
1256         public string Realname_utf;
1257 
1258         /// <summary>
1259         /// Optional User Description
1260         /// </summary>
1261         public string Note_utf;
1262 
1263         /// <summary>
1264         /// Creation date and time
1265         /// </summary>
1266         public DateTime CreatedTime_dt;
1267 
1268         /// <summary>
1269         /// Last modified date and time
1270         /// </summary>
1271         public DateTime UpdatedTime_dt;
1272 
1273         /// <summary>
1274         /// Expiration date and time
1275         /// </summary>
1276         public DateTime ExpireTime_dt;
1277 
1278         /// <summary>
1279         /// Authentication method of the user
1280         /// </summary>
1281         public VpnRpcUserAuthType AuthType_u32;
1282 
1283         /// <summary>
1284         /// User password, valid only if AuthType_u32 == Password(1). Valid only to create or set operations.
1285         /// </summary>
1286         public string Auth_Password_str;
1287 
1288         /// <summary>
1289         /// User certificate, valid only if AuthType_u32 == UserCert(2).
1290         /// </summary>
1291         [JsonProperty("UserX_bin")]
1292         public byte[] Auth_UserCert_CertData;
1293 
1294         /// <summary>
1295         /// Certificate Serial Number, optional, valid only if AuthType_u32 == RootCert(3).
1296         /// </summary>
1297         [JsonProperty("Serial_bin")]
1298         public byte[] Auth_RootCert_Serial;
1299 
1300         /// <summary>
1301         /// Certificate Common Name, optional, valid only if AuthType_u32 == RootCert(3).
1302         /// </summary>
1303         [JsonProperty("CommonName_utf")]
1304         public string Auth_RootCert_CommonName;
1305 
1306         /// <summary>
1307         /// Username in RADIUS server, optional, valid only if AuthType_u32 == Radius(4).
1308         /// </summary>
1309         [JsonProperty("RadiusUsername_utf")]
1310         public string Auth_Radius_RadiusUsername;
1311 
1312         /// <summary>
1313         /// Username in NT Domain server, optional, valid only if AuthType_u32 == NT(5).
1314         /// </summary>
1315         [JsonProperty("NtUsername_utf")]
1316         public string Auth_NT_NTUsername;
1317 
1318         /// <summary>
1319         /// Number of total logins of the user
1320         /// </summary>
1321         public uint NumLogin_u32;
1322 
1323         /// <summary>
1324         /// Number of broadcast packets (Recv)
1325         /// </summary>
1326         [JsonProperty("Recv.BroadcastBytes_u64")]
1327         public ulong Recv_BroadcastBytes_u64;
1328 
1329         /// <summary>
1330         /// Broadcast bytes (Recv)
1331         /// </summary>
1332         [JsonProperty("Recv.BroadcastCount_u64")]
1333         public ulong Recv_BroadcastCount_u64;
1334 
1335         /// <summary>
1336         /// Unicast count (Recv)
1337         /// </summary>
1338         [JsonProperty("Recv.UnicastBytes_u64")]
1339         public ulong Recv_UnicastBytes_u64;
1340 
1341         /// <summary>
1342         /// Unicast bytes (Recv)
1343         /// </summary>
1344         [JsonProperty("Recv.UnicastCount_u64")]
1345         public ulong Recv_UnicastCount_u64;
1346 
1347         /// <summary>
1348         /// Number of broadcast packets (Send)
1349         /// </summary>
1350         [JsonProperty("Send.BroadcastBytes_u64")]
1351         public ulong Send_BroadcastBytes_u64;
1352 
1353         /// <summary>
1354         /// Broadcast bytes (Send)
1355         /// </summary>
1356         [JsonProperty("Send.BroadcastCount_u64")]
1357         public ulong Send_BroadcastCount_u64;
1358 
1359         /// <summary>
1360         /// Unicast bytes (Send)
1361         /// </summary>
1362         [JsonProperty("Send.UnicastBytes_u64")]
1363         public ulong Send_UnicastBytes_u64;
1364 
1365         /// <summary>
1366         /// Unicast bytes (Send)
1367         /// </summary>
1368         [JsonProperty("Send.UnicastCount_u64")]
1369         public ulong Send_UnicastCount_u64;
1370 
1371         /// <summary>
1372         /// The flag whether to use security policy
1373         /// </summary>
1374         public bool UsePolicy_bool;
1375 
1376         // ---- Start of Security policy ---
1377         /// <summary>
1378         /// Security policy: Allow Access. The users, which this policy value is true, have permission to make VPN connection to VPN Server.
1379         /// </summary>
1380         [JsonProperty("policy:Access_bool")]
1381         public bool SecPol_Access_bool;
1382 
1383         /// <summary>
1384         /// Security policy: Filter DHCP Packets (IPv4). All IPv4 DHCP packets in sessions defined this policy will be filtered.
1385         /// </summary>
1386         [JsonProperty("policy:DHCPFilter_bool")]
1387         public bool SecPol_DHCPFilter_bool;
1388 
1389         /// <summary>
1390         /// Security policy: Disallow DHCP Server Operation (IPv4). Computers connected to sessions that have this policy setting will not be allowed to become a DHCP server and distribute IPv4 addresses to DHCP clients.
1391         /// </summary>
1392         [JsonProperty("policy:DHCPNoServer_bool")]
1393         public bool SecPol_DHCPNoServer_bool;
1394 
1395         /// <summary>
1396         /// Security policy: Enforce DHCP Allocated IP Addresses (IPv4). Computers in sessions that have this policy setting will only be able to use IPv4 addresses allocated by a DHCP server on the virtual network side.
1397         /// </summary>
1398         [JsonProperty("policy:DHCPForce_bool")]
1399         public bool SecPol_DHCPForce_bool;
1400 
1401         /// <summary>
1402         /// Security policy: Deny Bridge Operation. Bridge-mode connections are denied for user sessions that have this policy setting. Even in cases when the Ethernet Bridge is configured in the client side, communication will not be possible.
1403         /// </summary>
1404         [JsonProperty("policy:NoBridge_bool")]
1405         public bool SecPol_NoBridge_bool;
1406 
1407         /// <summary>
1408         /// Security policy: Deny Routing Operation (IPv4). IPv4 routing will be denied for sessions that have this policy setting. Even in the case where the IP router is operating on the user client side, communication will not be possible.
1409         /// </summary>
1410         [JsonProperty("policy:NoRouting_bool")]
1411         public bool SecPol_NoRouting_bool;
1412 
1413         /// <summary>
1414         /// Security policy: Deny MAC Addresses Duplication. The use of duplicating MAC addresses that are in use by computers of different sessions cannot be used by sessions with this policy setting.
1415         /// </summary>
1416         [JsonProperty("policy:CheckMac_bool")]
1417         public bool SecPol_CheckMac_bool;
1418 
1419         /// <summary>
1420         /// Security policy: Deny IP Address Duplication (IPv4). The use of duplicating IPv4 addresses that are in use by computers of different sessions cannot be used by sessions with this policy setting.
1421         /// </summary>
1422         [JsonProperty("policy:CheckIP_bool")]
1423         public bool SecPol_CheckIP_bool;
1424 
1425         /// <summary>
1426         /// Security policy: Deny Non-ARP / Non-DHCP / Non-ICMPv6 broadcasts. The sending or receiving of broadcast packets that are not ARP protocol, DHCP protocol, nor ICMPv6 on the virtual network will not be allowed for sessions with this policy setting.
1427         /// </summary>
1428         [JsonProperty("policy:ArpDhcpOnly_bool")]
1429         public bool SecPol_ArpDhcpOnly_bool;
1430 
1431         /// <summary>
1432         /// Security policy: Privacy Filter Mode. All direct communication between sessions with the privacy filter mode policy setting will be filtered.
1433         /// </summary>
1434         [JsonProperty("policy:PrivacyFilter_bool")]
1435         public bool SecPol_PrivacyFilter_bool;
1436 
1437         /// <summary>
1438         /// Security policy: Deny Operation as TCP/IP Server (IPv4). Computers of sessions with this policy setting can't listen and accept TCP/IP connections in IPv4.
1439         /// </summary>
1440         [JsonProperty("policy:NoServer_bool")]
1441         public bool SecPol_NoServer_bool;
1442 
1443         /// <summary>
1444         /// Security policy: Unlimited Number of Broadcasts. If a computer of a session with this policy setting sends broadcast packets of a number unusually larger than what would be considered normal on the virtual network, there will be no automatic limiting.
1445         /// </summary>
1446         [JsonProperty("policy:NoBroadcastLimiter_bool")]
1447         public bool SecPol_NoBroadcastLimiter_bool;
1448 
1449         /// <summary>
1450         /// Security policy: Allow Monitoring Mode. Users with this policy setting will be granted to connect to the Virtual Hub in Monitoring Mode. Sessions in Monitoring Mode are able to monitor (tap) all packets flowing through the Virtual Hub.
1451         /// </summary>
1452         [JsonProperty("policy:MonitorPort_bool")]
1453         public bool SecPol_MonitorPort_bool;
1454 
1455         /// <summary>
1456         /// Security policy: Maximum Number of TCP Connections. For sessions with this policy setting, this sets the maximum number of physical TCP connections consists in a physical VPN session.
1457         /// </summary>
1458         [JsonProperty("policy:MaxConnection_u32")]
1459         public uint SecPol_MaxConnection_u32;
1460 
1461         /// <summary>
1462         /// Security policy: Time-out Period. For sessions with this policy setting, this sets, in seconds, the time-out period to wait before disconnecting a session when communication trouble occurs between the VPN Client / VPN Server.
1463         /// </summary>
1464         [JsonProperty("policy:TimeOut_u32")]
1465         public uint SecPol_TimeOut_u32;
1466 
1467         /// <summary>
1468         /// Security policy: Maximum Number of MAC Addresses. For sessions with this policy setting, this limits the number of MAC addresses per session.
1469         /// </summary>
1470         [JsonProperty("policy:MaxMac_u32")]
1471         public uint SecPol_MaxMac_u32;
1472 
1473         /// <summary>
1474         /// Security policy: Maximum Number of IP Addresses (IPv4). For sessions with this policy setting, this specifies the number of IPv4 addresses that can be registered for a single session.
1475         /// </summary>
1476         [JsonProperty("policy:MaxIP_u32")]
1477         public uint SecPol_MaxIP_u32;
1478 
1479         /// <summary>
1480         /// Security policy: Upload Bandwidth. For sessions with this policy setting, this limits the traffic bandwidth that is in the inwards direction from outside to inside the Virtual Hub.
1481         /// </summary>
1482         [JsonProperty("policy:MaxUpload_u32")]
1483         public uint SecPol_MaxUpload_u32;
1484 
1485         /// <summary>
1486         /// Security policy: Download Bandwidth. For sessions with this policy setting, this limits the traffic bandwidth that is in the outwards direction from inside the Virtual Hub to outside the Virtual Hub.
1487         /// </summary>
1488         [JsonProperty("policy:MaxDownload_u32")]
1489         public uint SecPol_MaxDownload_u32;
1490 
1491         /// <summary>
1492         /// Security policy: Deny Changing Password. The users which use password authentication with this policy setting are not allowed to change their own password from the VPN Client Manager or similar.
1493         /// </summary>
1494         [JsonProperty("policy:FixPassword_bool")]
1495         public bool SecPol_FixPassword_bool;
1496 
1497         /// <summary>
1498         /// Security policy: Maximum Number of Multiple Logins. Users with this policy setting are unable to have more than this number of concurrent logins. Bridge Mode sessions are not subjects to this policy.
1499         /// </summary>
1500         [JsonProperty("policy:MultiLogins_u32")]
1501         public uint SecPol_MultiLogins_u32;
1502 
1503         /// <summary>
1504         /// Security policy: Deny VoIP / QoS Function. Users with this security policy are unable to use VoIP / QoS functions in VPN connection sessions.
1505         /// </summary>
1506         [JsonProperty("policy:NoQoS_bool")]
1507         public bool SecPol_NoQoS_bool;
1508 
1509         /// <summary>
1510         /// Security policy: Filter RS / RA Packets (IPv6). All ICMPv6 packets which the message-type is 133 (Router Solicitation) or 134 (Router Advertisement) in sessions defined this policy will be filtered. As a result, an IPv6 client will be unable to use IPv6 address prefix auto detection and IPv6 default gateway auto detection.
1511         /// </summary>
1512         [JsonProperty("policy:RSandRAFilter_bool")]
1513         public bool SecPol_RSandRAFilter_bool;
1514 
1515         /// <summary>
1516         /// Security policy: Filter RA Packets (IPv6). All ICMPv6 packets which the message-type is 134 (Router Advertisement) in sessions defined this policy will be filtered. As a result, a malicious users will be unable to spread illegal IPv6 prefix or default gateway advertisements on the network.
1517         /// </summary>
1518         [JsonProperty("policy:RAFilter_bool")]
1519         public bool SecPol_RAFilter_bool;
1520 
1521         /// <summary>
1522         /// Security policy: Filter DHCP Packets (IPv6). All IPv6 DHCP packets in sessions defined this policy will be filtered.
1523         /// </summary>
1524         [JsonProperty("policy:DHCPv6Filter_bool")]
1525         public bool SecPol_DHCPv6Filter_bool;
1526 
1527         /// <summary>
1528         /// Security policy: Disallow DHCP Server Operation (IPv6). Computers connected to sessions that have this policy setting will not be allowed to become a DHCP server and distribute IPv6 addresses to DHCP clients.
1529         /// </summary>
1530         [JsonProperty("policy:DHCPv6NoServer_bool")]
1531         public bool SecPol_DHCPv6NoServer_bool;
1532 
1533         /// <summary>
1534         /// Security policy: Deny Routing Operation (IPv6). IPv6 routing will be denied for sessions that have this policy setting. Even in the case where the IP router is operating on the user client side, communication will not be possible.
1535         /// </summary>
1536         [JsonProperty("policy:NoRoutingV6_bool")]
1537         public bool SecPol_NoRoutingV6_bool;
1538 
1539         /// <summary>
1540         /// Security policy: Deny IP Address Duplication (IPv6). The use of duplicating IPv6 addresses that are in use by computers of different sessions cannot be used by sessions with this policy setting.
1541         /// </summary>
1542         [JsonProperty("policy:CheckIPv6_bool")]
1543         public bool SecPol_CheckIPv6_bool;
1544 
1545         /// <summary>
1546         /// Security policy: Deny Operation as TCP/IP Server (IPv6). Computers of sessions with this policy setting can't listen and accept TCP/IP connections in IPv6.
1547         /// </summary>
1548         [JsonProperty("policy:NoServerV6_bool")]
1549         public bool SecPol_NoServerV6_bool;
1550 
1551         /// <summary>
1552         /// Security policy: Maximum Number of IP Addresses (IPv6). For sessions with this policy setting, this specifies the number of IPv6 addresses that can be registered for a single session.
1553         /// </summary>
1554         [JsonProperty("policy:MaxIPv6_u32")]
1555         public uint SecPol_MaxIPv6_u32;
1556 
1557         /// <summary>
1558         /// Security policy: Disallow Password Save in VPN Client. For users with this policy setting, when the user is using *standard* password authentication, the user will be unable to save the password in VPN Client. The user will be required to input passwords for every time to connect a VPN. This will improve the security. If this policy is enabled, VPN Client Version 2.0 will be denied to access.
1559         /// </summary>
1560         [JsonProperty("policy:NoSavePassword_bool")]
1561         public bool SecPol_NoSavePassword_bool;
1562 
1563         /// <summary>
1564         /// Security policy: VPN Client Automatic Disconnect. For users with this policy setting, a user's VPN session will be disconnected automatically after the specific period will elapse. In this case no automatic re-connection will be performed. This can prevent a lot of inactive VPN Sessions. If this policy is enabled, VPN Client Version 2.0 will be denied to access.
1565         /// </summary>
1566         [JsonProperty("policy:AutoDisconnect_u32")]
1567         public uint SecPol_AutoDisconnect_u32;
1568 
1569         /// <summary>
1570         /// Security policy: Filter All IPv4 Packets. All IPv4 and ARP packets in sessions defined this policy will be filtered.
1571         /// </summary>
1572         [JsonProperty("policy:FilterIPv4_bool")]
1573         public bool SecPol_FilterIPv4_bool;
1574 
1575         /// <summary>
1576         /// Security policy: Filter All IPv6 Packets. All IPv6 packets in sessions defined this policy will be filtered.
1577         /// </summary>
1578         [JsonProperty("policy:FilterIPv6_bool")]
1579         public bool SecPol_FilterIPv6_bool;
1580 
1581         /// <summary>
1582         /// Security policy: Filter All Non-IP Packets. All non-IP packets in sessions defined this policy will be filtered. "Non-IP packet" mean a packet which is not IPv4, ARP nor IPv6. Any tagged-VLAN packets via the Virtual Hub will be regarded as non-IP packets.
1583         /// </summary>
1584         [JsonProperty("policy:FilterNonIP_bool")]
1585         public bool SecPol_FilterNonIP_bool;
1586 
1587         /// <summary>
1588         /// Security policy: No Default-Router on IPv6 RA. In all VPN Sessions defines this policy, any IPv6 RA (Router Advertisement) packet with non-zero value in the router-lifetime will set to zero-value. This is effective to avoid the horrible behavior from the IPv6 routing confusion which is caused by the VPN client's attempts to use the remote-side IPv6 router as its local IPv6 router.
1589         /// </summary>
1590         [JsonProperty("policy:NoIPv6DefaultRouterInRA_bool")]
1591         public bool SecPol_NoIPv6DefaultRouterInRA_bool;
1592 
1593         /// <summary>
1594         /// Security policy: No Default-Router on IPv6 RA (physical IPv6). In all VPN Sessions defines this policy (only when the physical communication protocol between VPN Client / VPN Bridge and VPN Server is IPv6), any IPv6 RA (Router Advertisement) packet with non-zero value in the router-lifetime will set to zero-value. This is effective to avoid the horrible behavior from the IPv6 routing confusion which is caused by the VPN client's attempts to use the remote-side IPv6 router as its local IPv6 router.
1595         /// </summary>
1596         [JsonProperty("policy:NoIPv6DefaultRouterInRAWhenIPv6_bool")]
1597         public bool SecPol_NoIPv6DefaultRouterInRAWhenIPv6_bool;
1598 
1599         /// <summary>
1600         /// Security policy: VLAN ID (IEEE802.1Q). You can specify the VLAN ID on the security policy. All VPN Sessions defines this policy, all Ethernet packets toward the Virtual Hub from the user will be inserted a VLAN tag (IEEE 802.1Q) with the VLAN ID. The user can also receive only packets with a VLAN tag which has the same VLAN ID. (Receiving process removes the VLAN tag automatically.) Any Ethernet packets with any other VLAN IDs or non-VLAN packets will not be received. All VPN Sessions without this policy definition can send / receive any kinds of Ethernet packets regardless of VLAN tags, and VLAN tags are not inserted or removed automatically. Any tagged-VLAN packets via the Virtual Hub will be regarded as non-IP packets. Therefore, tagged-VLAN packets are not subjects for IPv4 / IPv6 security policies, access lists nor other IPv4 / IPv6 specific deep processing.
1601         /// </summary>
1602         [JsonProperty("policy:VLanId_u32")]
1603         public uint SecPol_VLanId_u32;
1604 
1605         /// <summary>
1606         /// Security policy: Whether version 3.0 (must be true)
1607         /// </summary>
1608         [JsonProperty("policy:Ver3_bool")]
1609         public bool SecPol_Ver3_bool = true;
1610         // ---- End of Security policy ---
1611     }
1612 
1613     /// <summary>
1614     /// Delete the access list
1615     /// </summary>
1616     public class VpnRpcDeleteAccess
1617     {
1618         /// <summary>
1619         /// The Virtual Hub name
1620         /// </summary>
1621         public string HubName_str;
1622 
1623         /// <summary>
1624         /// ID
1625         /// </summary>
1626         public uint Id_u32;
1627     }
1628 
1629     /// <summary>
1630     /// Delete the CA of HUB
1631     /// </summary>
1632     public class VpnRpcHubDeleteCA
1633     {
1634         /// <summary>
1635         /// The Virtual Hub name
1636         /// </summary>
1637         public string HubName_str;
1638 
1639         /// <summary>
1640         /// Certificate key id to be deleted
1641         /// </summary>
1642         public uint Key_u32;
1643     }
1644 
1645     /// <summary>
1646     /// Deleting a user or group
1647     /// </summary>
1648     public class VpnRpcDeleteUser
1649     {
1650         /// <summary>
1651         /// The Virtual Hub name
1652         /// </summary>
1653         public string HubName_str;
1654 
1655         /// <summary>
1656         /// User or group name
1657         /// </summary>
1658         public string Name_str;
1659     }
1660 
1661     /// <summary>
1662     /// Delete the HUB
1663     /// </summary>
1664     public class VpnRpcDeleteHub
1665     {
1666         /// <summary>
1667         /// The Virtual Hub name
1668         /// </summary>
1669         public string HubName_str;
1670     }
1671 
1672     /// <summary>
1673     /// Delete the table
1674     /// </summary>
1675     public class VpnRpcDeleteTable
1676     {
1677         /// <summary>
1678         /// The Virtual Hub name
1679         /// </summary>
1680         public string HubName_str;
1681 
1682         /// <summary>
1683         /// Key ID
1684         /// </summary>
1685         public uint Key_u32;
1686     }
1687 
1688     /// <summary>
1689     /// Specify the Link
1690     /// </summary>
1691     public class VpnRpcLink
1692     {
1693         /// <summary>
1694         /// The Virtual Hub name
1695         /// </summary>
1696         public string HubName_str;
1697 
1698         /// <summary>
1699         /// The name of the cascade connection
1700         /// </summary>
1701         public string AccountName_utf;
1702     }
1703 
1704     /// <summary>
1705     /// Disconnect the session
1706     /// </summary>
1707     public class VpnRpcDeleteSession
1708     {
1709         /// <summary>
1710         /// The Virtual Hub name
1711         /// </summary>
1712         public string HubName_str;
1713 
1714         /// <summary>
1715         /// Session name
1716         /// </summary>
1717         public string Name_str;
1718     }
1719 
1720     /// <summary>
1721     /// Specify the HUB
1722     /// </summary>
1723     public class VpnRpcHub
1724     {
1725         /// <summary>
1726         /// The Virtual Hub name
1727         /// </summary>
1728         public string HubName_str;
1729     }
1730 
1731     /// <summary>
1732     /// Disconnect a connection
1733     /// </summary>
1734     public class VpnRpcDisconnectConnection
1735     {
1736         /// <summary>
1737         /// Connection name
1738         /// </summary>
1739         public string Name_str;
1740     }
1741 
1742     /// <summary>
1743     /// Enumeration of the access list
1744     /// </summary>
1745     public class VpnRpcEnumAccessList
1746     {
1747         /// <summary>
1748         /// The Virtual Hub name
1749         /// </summary>
1750         public string HubName_str;
1751 
1752         /// <summary>
1753         /// Access list
1754         /// </summary>
1755         public VpnAccess[] AccessList;
1756     }
1757 
1758     /// <summary>
1759     /// CA enumeration items of HUB
1760     /// </summary>
1761     public class VpnRpcHubEnumCAItem
1762     {
1763         /// <summary>
1764         /// The key id of the item
1765         /// </summary>
1766         public uint Key_u32;
1767 
1768         /// <summary>
1769         /// Subject
1770         /// </summary>
1771         public string SubjectName_utf;
1772 
1773         /// <summary>
1774         /// Issuer
1775         /// </summary>
1776         public string IssuerName_utf;
1777 
1778         /// <summary>
1779         /// Expiration date
1780         /// </summary>
1781         public DateTime Expires_dt;
1782     }
1783 
1784     /// <summary>
1785     /// CA enumeration of HUB
1786     /// </summary>
1787     public class VpnRpcHubEnumCA
1788     {
1789         /// <summary>
1790         /// The Virtual Hub name
1791         /// </summary>
1792         public string HubName_str;
1793 
1794         /// <summary>
1795         /// The list of CA
1796         /// </summary>
1797         public VpnRpcHubEnumCAItem[] CAList;
1798     }
1799 
1800     /// <summary>
1801     /// Type of connection
1802     /// </summary>
1803     public enum VpnRpcConnectionType
1804     {
1805         /// <summary>
1806         ///  VPN Client
1807         /// </summary>
1808         Client = 0,
1809 
1810         /// <summary>
1811         /// During initialization
1812         /// </summary>
1813         Init = 1,
1814 
1815         /// <summary>
1816         /// Login connection
1817         /// </summary>
1818         Login = 2,
1819 
1820         /// <summary>
1821         /// Additional connection
1822         /// </summary>
1823         Additional = 3,
1824 
1825         /// <summary>
1826         /// RPC for server farm
1827         /// </summary>
1828         FarmRpc = 4,
1829 
1830         /// <summary>
1831         /// RPC for Management
1832         /// </summary>
1833         AdminRpc = 5,
1834 
1835         /// <summary>
1836         /// HUB enumeration
1837         /// </summary>
1838         EnumHub = 6,
1839 
1840         /// <summary>
1841         /// Password change
1842         /// </summary>
1843         Password = 7,
1844 
1845         /// <summary>
1846         /// SSTP
1847         /// </summary>
1848         SSTP = 8,
1849 
1850         /// <summary>
1851         /// OpenVPN
1852         /// </summary>
1853         OpenVPN = 9,
1854     }
1855 
1856     /// <summary>
1857     /// Connection enumeration items
1858     /// </summary>
1859     public class VpnRpcEnumConnectionItem
1860     {
1861         /// <summary>
1862         /// Connection name
1863         /// </summary>
1864         public string Name_str;
1865 
1866         /// <summary>
1867         /// Host name
1868         /// </summary>
1869         public string Hostname_str;
1870 
1871         /// <summary>
1872         /// IP address
1873         /// </summary>
1874         public string Ip_ip;
1875 
1876         /// <summary>
1877         /// Port number
1878         /// </summary>
1879         public uint Port_u32;
1880 
1881         /// <summary>
1882         /// Connected time
1883         /// </summary>
1884         public DateTime ConnectedTime_dt;
1885 
1886         /// <summary>
1887         /// Connection type
1888         /// </summary>
1889         public VpnRpcConnectionType Type_u32;
1890     }
1891 
1892     /// <summary>
1893     /// Connection enumeration
1894     /// </summary>
1895     public class VpnRpcEnumConnection
1896     {
1897         /// <summary>
1898         /// Number of connections
1899         /// </summary>
1900         public uint NumConnection_u32;
1901 
1902         /// <summary>
1903         /// Connection list
1904         /// </summary>
1905         public VpnRpcEnumConnectionItem[] ConnectionList;
1906     }
1907 
1908     /// <summary>
1909     /// Enum CRL Item
1910     /// </summary>
1911     public class VpnRpcEnumCrlItem
1912     {
1913         /// <summary>
1914         /// Key ID
1915         /// </summary>
1916         public uint Key_u32;
1917 
1918         /// <summary>
1919         /// The contents of the CRL item
1920         /// </summary>
1921         public string CrlInfo_utf;
1922     }
1923 
1924     /// <summary>
1925     /// Enum CRL
1926     ///</summary>
1927     public class VpnRpcEnumCrl
1928     {
1929         /// <summary>
1930         /// The Virtual Hub name
1931         /// </summary>
1932         public string HubName_str;
1933 
1934         /// <summary>
1935         /// CRL list
1936         /// </summary>
1937         public VpnRpcEnumCrlItem[] CRLList;
1938     }
1939 
1940     /// <summary>
1941     /// RPC_ENUM_DHCP_ITEM
1942     /// </summary>
1943     public class VpnRpcEnumDhcpItem
1944     {
1945         /// <summary>
1946         /// ID
1947         /// </summary>
1948         public uint Id_u32;
1949 
1950         /// <summary>
1951         /// Lease time
1952         /// </summary>
1953         public DateTime LeasedTime_dt;
1954 
1955         /// <summary>
1956         /// Expiration date
1957         /// </summary>
1958         public DateTime ExpireTime_dt;
1959 
1960         /// <summary>
1961         /// MAC address
1962         /// </summary>
1963         public byte[] MacAddress_bin;
1964 
1965         /// <summary>
1966         /// IP address
1967         /// </summary>
1968         public string IpAddress_ip;
1969 
1970         /// <summary>
1971         /// Subnet mask
1972         /// </summary>
1973         public uint Mask_u32;
1974 
1975         /// <summary>
1976         /// Host name
1977         /// </summary>
1978         public string Hostname_str;
1979     }
1980 
1981     /// <summary>
1982     /// RPC_ENUM_DHCP
1983     /// </summary>
1984     public class VpnRpcEnumDhcp
1985     {
1986         /// <summary>
1987         /// Virtual Hub Name
1988         /// </summary>
1989         public string HubName_str;
1990 
1991         /// <summary>
1992         /// DHCP Item
1993         /// </summary>
1994         public VpnRpcEnumDhcpItem[] DhcpTable;
1995     }
1996 
1997     /// <summary>
1998     /// EtherIP setting list
1999     /// </summary>
2000     public class VpnRpcEnumEtherIpId
2001     {
2002         /// <summary>
2003         /// Setting list
2004         /// </summary>
2005         public VpnEtherIpId[] Settings;
2006     }
2007 
2008     /// <summary>
2009     /// Ethernet Network Adapters list item
2010     /// </summary>
2011     public class VpnRpcEnumEthItem
2012     {
2013         /// <summary>
2014         /// Device name
2015         /// </summary>
2016         public string DeviceName_str;
2017 
2018         /// <summary>
2019         /// Network connection name (description)
2020         /// </summary>
2021         public string NetworkConnectionName_utf;
2022     }
2023 
2024     /// <summary>
2025     /// Ethernet Network Adapters list
2026     /// </summary>
2027     public class VpnRpcEnumEth
2028     {
2029         /// <summary>
2030         /// Ethernet Network Adapters list
2031         /// </summary>
2032         public VpnRpcEnumEthItem[] EthList;
2033     }
2034 
2035     /// <summary>
2036     /// Server farm members enumeration items
2037     /// </summary>
2038     public class VpnRpcEnumFarmItem
2039     {
2040         /// <summary>
2041         /// ID
2042         /// </summary>
2043         public uint Id_u32;
2044 
2045         /// <summary>
2046         /// Controller
2047         /// </summary>
2048         public bool Controller_bool;
2049 
2050         /// <summary>
2051         /// Connection time
2052         /// </summary>
2053         public DateTime ConnectedTime_dt;
2054 
2055         /// <summary>
2056         /// IP address
2057         /// </summary>
2058         public string Ip_ip;
2059 
2060         /// <summary>
2061         /// Host name
2062         /// </summary>
2063         public string Hostname_str;
2064 
2065         /// <summary>
2066         /// Point
2067         /// </summary>
2068         public uint Point_u32;
2069 
2070         /// <summary>
2071         /// Number of sessions
2072         /// </summary>
2073         public uint NumSessions_u32;
2074 
2075         /// <summary>
2076         /// Number of TCP connections
2077         /// </summary>
2078         public uint NumTcpConnections_u32;
2079 
2080         /// <summary>
2081         /// Number of HUBs
2082         /// </summary>
2083         public uint NumHubs_u32;
2084 
2085         /// <summary>
2086         /// Number of assigned client licenses
2087         /// </summary>
2088         public uint AssignedClientLicense_u32;
2089 
2090         /// <summary>
2091         /// Number of assigned bridge licenses
2092         /// </summary>
2093         public uint AssignedBridgeLicense_u32;
2094     }
2095 
2096     /// <summary>
2097     /// Server farm member enumeration
2098     /// </summary>
2099     public class VpnRpcEnumFarm
2100     {
2101         /// <summary>
2102         /// Number of Cluster Members
2103         /// </summary>
2104         public uint NumFarm_u32;
2105 
2106         /// <summary>
2107         /// Cluster Members list
2108         /// </summary>
2109         public VpnRpcEnumFarmItem[] FarmMemberList;
2110     }
2111 
2112     /// <summary>
2113     /// Enumeration items in the group
2114     /// </summary>
2115     public class VpnRpcEnumGroupItem
2116     {
2117         /// <summary>
2118         /// User name
2119         /// </summary>
2120         public string Name_str;
2121 
2122         /// <summary>
2123         /// Real name
2124         /// </summary>
2125         public string Realname_utf;
2126 
2127         /// <summary>
2128         /// Note
2129         /// </summary>
2130         public string Note_utf;
2131 
2132         /// <summary>
2133         /// Number of users
2134         /// </summary>
2135         public uint NumUsers_u32;
2136 
2137         /// <summary>
2138         /// Access denied
2139         /// </summary>
2140         public bool DenyAccess_bool;
2141     }
2142 
2143     /// <summary>
2144     /// Group enumeration
2145     /// </summary>
2146     public class VpnRpcEnumGroup
2147     {
2148         /// <summary>
2149         /// The Virtual Hub name
2150         /// </summary>
2151         public string HubName_str;
2152 
2153         /// <summary>
2154         /// Group list
2155         /// </summary>
2156         public VpnRpcEnumGroupItem[] GroupList;
2157     }
2158 
2159     /// <summary>
2160     /// Enumeration items of HUB
2161     /// </summary>
2162     public class VpnRpcEnumHubItem
2163     {
2164         /// <summary>
2165         /// The name of the Virtual Hub
2166         /// </summary>
2167         public string HubName_str;
2168 
2169         /// <summary>
2170         /// Online state
2171         /// </summary>
2172         public bool Online_bool;
2173 
2174         /// <summary>
2175         /// Type of HUB (Valid only for Clustered VPN Servers)
2176         /// </summary>
2177         public VpnRpcHubType HubType_u32;
2178 
2179         /// <summary>
2180         /// Number of users
2181         /// </summary>
2182         public uint NumUsers_u32;
2183 
2184         /// <summary>
2185         /// Number of registered groups
2186         /// </summary>
2187         public uint NumGroups_u32;
2188 
2189         /// <summary>
2190         /// Number of registered sessions
2191         /// </summary>
2192         public uint NumSessions_u32;
2193 
2194         /// <summary>
2195         /// Number of current MAC table entries
2196         /// </summary>
2197         public uint NumMacTables_u32;
2198 
2199         /// <summary>
2200         /// Number of current IP table entries
2201         /// </summary>
2202         public uint NumIpTables_u32;
2203 
2204         /// <summary>
2205         /// Last communication date and time
2206         /// </summary>
2207         public DateTime LastCommTime_dt;
2208 
2209         /// <summary>
2210         /// Last login date and time
2211         /// </summary>
2212         public DateTime LastLoginTime_dt;
2213 
2214         /// <summary>
2215         /// Creation date and time
2216         /// </summary>
2217         public DateTime CreatedTime_dt;
2218 
2219         /// <summary>
2220         /// Number of accumulated logins
2221         /// </summary>
2222         public uint NumLogin_u32;
2223 
2224         /// <summary>
2225         /// Whether the traffic information is provided
2226         /// </summary>
2227         public bool IsTrafficFilled_bool;
2228 
2229         /// <summary>
2230         /// Number of broadcast packets (Recv)
2231         /// </summary>
2232         [JsonProperty("Ex.Recv.BroadcastBytes_u64")]
2233         public ulong Recv_BroadcastBytes_u64;
2234 
2235         /// <summary>
2236         /// Broadcast bytes (Recv)
2237         /// </summary>
2238         [JsonProperty("Ex.Recv.BroadcastCount_u64")]
2239         public ulong Recv_BroadcastCount_u64;
2240 
2241         /// <summary>
2242         /// Unicast count (Recv)
2243         /// </summary>
2244         [JsonProperty("Ex.Recv.UnicastBytes_u64")]
2245         public ulong Recv_UnicastBytes_u64;
2246 
2247         /// <summary>
2248         /// Unicast bytes (Recv)
2249         /// </summary>
2250         [JsonProperty("Ex.Recv.UnicastCount_u64")]
2251         public ulong Recv_UnicastCount_u64;
2252 
2253         /// <summary>
2254         /// Number of broadcast packets (Send)
2255         /// </summary>
2256         [JsonProperty("Ex.Send.BroadcastBytes_u64")]
2257         public ulong Send_BroadcastBytes_u64;
2258 
2259         /// <summary>
2260         /// Broadcast bytes (Send)
2261         /// </summary>
2262         [JsonProperty("Ex.Send.BroadcastCount_u64")]
2263         public ulong Send_BroadcastCount_u64;
2264 
2265         /// <summary>
2266         /// Unicast bytes (Send)
2267         /// </summary>
2268         [JsonProperty("Ex.Send.UnicastBytes_u64")]
2269         public ulong Send_UnicastBytes_u64;
2270 
2271         /// <summary>
2272         /// Unicast bytes (Send)
2273         /// </summary>
2274         [JsonProperty("Ex.Send.UnicastCount_u64")]
2275         public ulong Send_UnicastCount_u64;
2276     }
2277 
2278     /// <summary>
2279     /// Enumeration of HUB
2280     /// </summary>
2281     public class VpnRpcEnumHub
2282     {
2283         /// <summary>
2284         /// Number of Virtual Hubs
2285         /// </summary>
2286         public uint NumHub_u32;
2287 
2288         /// <summary>
2289         /// Virtual Hubs
2290         /// </summary>
2291         public VpnRpcEnumHubItem[] HubList;
2292     }
2293 
2294     /// <summary>
2295     /// Enumeration items of IP table
2296     /// </summary>
2297     public class VpnRpcEnumIpTableItem
2298     {
2299         /// <summary>
2300         /// Key ID
2301         /// </summary>
2302         public uint Key_u32;
2303 
2304         /// <summary>
2305         /// Session name
2306         /// </summary>
2307         public string SessionName_str;
2308 
2309         /// <summary>
2310         /// IP address
2311         /// </summary>
2312         public string IpAddress_ip;
2313 
2314         /// <summary>
2315         /// Assigned by the DHCP
2316         /// </summary>
2317         public bool DhcpAllocated_bool;
2318 
2319         /// <summary>
2320         /// Creation date and time
2321         /// </summary>
2322         public DateTime CreatedTime_dt;
2323 
2324         /// <summary>
2325         /// Updating date
2326         /// </summary>
2327         public DateTime UpdatedTime_dt;
2328 
2329         /// <summary>
2330         /// Remote items
2331         /// </summary>
2332         public bool RemoteItem_bool;
2333 
2334         /// <summary>
2335         /// Remote host name
2336         /// </summary>
2337         public string RemoteHostname_str;
2338     }
2339 
2340     /// <summary>
2341     /// Enumeration of IP table
2342     /// </summary>
2343     public class VpnRpcEnumIpTable
2344     {
2345         /// <summary>
2346         /// The Virtual Hub name
2347         /// </summary>
2348         public string HubName_str;
2349 
2350         /// <summary>
2351         /// MAC table
2352         /// </summary>
2353         public VpnRpcEnumIpTableItem[] IpTable;
2354     }
2355 
2356     /// <summary>
2357     /// Layer-3 interface enumeration
2358     /// </summary>
2359     public class VpnRpcEnumL3If
2360     {
2361         /// <summary>
2362         /// Layer-3 switch name
2363         /// </summary>
2364         public string Name_str;
2365 
2366         /// <summary>
2367         /// Layer-3 interface list
2368         /// </summary>
2369         public VpnRpcL3If[] L3IFList;
2370     }
2371 
2372     /// <summary>
2373     /// Layer-3 switch enumeration item
2374     /// </summary>
2375     public class VpnRpcEnumL3SwItem
2376     {
2377         /// <summary>
2378         /// Name of the layer-3 switch
2379         /// </summary>
2380         public string Name_str;
2381 
2382         /// <summary>
2383         /// Number of layer-3 switch virtual interfaces
2384         /// </summary>
2385         public uint NumInterfaces_u32;
2386 
2387         /// <summary>
2388         /// Number of routing tables
2389         /// </summary>
2390         public uint NumTables_u32;
2391 
2392         /// <summary>
2393         /// Activated flag
2394         /// </summary>
2395         public bool Active_bool;
2396 
2397         /// <summary>
2398         /// Online flag
2399         /// </summary>
2400         public bool Online_bool;
2401     }
2402 
2403     /// <summary>
2404     /// Layer-3 switch enumeration
2405     /// </summary>
2406     public class VpnRpcEnumL3Sw
2407     {
2408         /// <summary>
2409         /// Layer-3 switch list
2410         /// </summary>
2411         public VpnRpcEnumL3SwItem[] L3SWList;
2412     }
2413 
2414     /// <summary>
2415     /// Routing table enumeration
2416     /// </summary>
2417     public class VpnRpcEnumL3Table
2418     {
2419         /// <summary>
2420         /// L3 switch name
2421         /// </summary>
2422         public string Name_str;
2423 
2424         /// <summary>
2425         /// Routing table item list
2426         /// </summary>
2427         public VpnRpcL3Table[] L3Table;
2428     }
2429 
2430     /// <summary>
2431     /// Cascade Connection Enumeration
2432     /// </summary>
2433     public class VpnRpcEnumLinkItem
2434     {
2435         /// <summary>
2436         /// The name of cascade connection
2437         /// </summary>
2438         public string AccountName_utf;
2439 
2440         /// <summary>
2441         /// Online flag
2442         /// </summary>
2443         public bool Online_bool;
2444 
2445         /// <summary>
2446         /// The flag indicates whether the cascade connection is established
2447         /// </summary>
2448         public bool Connected_bool;
2449 
2450         /// <summary>
2451         /// The error last occurred if the cascade connection is in the fail state
2452         /// </summary>
2453         public uint LastError_u32;
2454 
2455         /// <summary>
2456         /// Connection completion time
2457         /// </summary>
2458         public DateTime ConnectedTime_dt;
2459 
2460         /// <summary>
2461         /// Host name of the destination VPN server
2462         /// </summary>
2463         public string Hostname_str;
2464 
2465         /// <summary>
2466         /// The Virtual Hub name
2467         /// </summary>
2468         public string TargetHubName_str;
2469     }
2470 
2471     /// <summary>
2472     /// Enumeration of the link
2473     /// </summary>
2474     public class VpnRpcEnumLink
2475     {
2476         /// <summary>
2477         /// The Virtual Hub name
2478         /// </summary>
2479         public string HubName_str;
2480 
2481         /// <summary>
2482         /// Number of cascade connections
2483         /// </summary>
2484         public uint NumLink_u32;
2485 
2486         /// <summary>
2487         /// The list of cascade connections
2488         /// </summary>
2489         public VpnRpcEnumLinkItem[] LinkList;
2490     }
2491 
2492     /// <summary>
2493     /// List of listeners item
2494     /// </summary>
2495     public class VpnRpcListenerListItem
2496     {
2497         /// <summary>
2498         /// TCP port number (range: 1 - 65535)
2499         /// </summary>
2500         public uint Ports_u32;
2501 
2502         /// <summary>
2503         /// Active state
2504         /// </summary>
2505         public bool Enables_bool;
2506 
2507         /// <summary>
2508         /// The flag to indicate if the error occurred on the listener port
2509         /// </summary>
2510         public bool Errors_bool;
2511     }
2512 
2513     /// <summary>
2514     /// List of listeners
2515     /// </summary>
2516     public class VpnRpcListenerList
2517     {
2518         /// <summary>
2519         /// List of listener items
2520         /// </summary>
2521         public VpnRpcListenerListItem[] ListenerList;
2522     }
2523 
2524     /// <summary>
2525     /// Local Bridge enumeration
2526     /// </summary>
2527     public class VpnRpcEnumLocalBridge
2528     {
2529         /// <summary>
2530         /// Local Bridge list
2531         /// </summary>
2532         public VpnRpcLocalBridge[] LocalBridgeList;
2533     }
2534 
2535     /// <summary>
2536     /// Log file enumeration
2537     /// </summary>
2538     public class VpnRpcEnumLogFileItem
2539     {
2540         /// <summary>
2541         /// Server name
2542         /// </summary>
2543         public string ServerName_str;
2544 
2545         /// <summary>
2546         /// File path
2547         /// </summary>
2548         public string FilePath_str;
2549 
2550         /// <summary>
2551         /// File size
2552         /// </summary>
2553         public uint FileSize_u32;
2554 
2555         /// <summary>
2556         /// Last write date
2557         /// </summary>
2558         public DateTime UpdatedTime_dt;
2559     }
2560 
2561     /// <summary>
2562     /// Log file enumeration
2563     ///</summary>
2564     public class VpnRpcEnumLogFile
2565     {
2566         /// <summary>
2567         /// Log file list
2568         /// </summary>
2569         public VpnRpcEnumLogFileItem[] LogFiles;
2570     }
2571 
2572     /// <summary>
2573     /// Enumeration items of the MAC table
2574     /// </summary>
2575     public class VpnRpcEnumMacTableItem
2576     {
2577         /// <summary>
2578         /// Key ID
2579         /// </summary>
2580         public uint Key_u32;
2581 
2582         /// <summary>
2583         /// Session name
2584         /// </summary>
2585         public string SessionName_str;
2586 
2587         /// <summary>
2588         /// MAC address
2589         /// </summary>
2590         public byte[] MacAddress_bin;
2591 
2592         /// <summary>
2593         /// Creation date and time
2594         /// </summary>
2595         public DateTime CreatedTime_dt;
2596 
2597         /// <summary>
2598         /// Updating date
2599         /// </summary>
2600         public DateTime UpdatedTime_dt;
2601 
2602         /// <summary>
2603         /// Remote items
2604         /// </summary>
2605         public bool RemoteItem_bool;
2606 
2607         /// <summary>
2608         /// Remote host name
2609         /// </summary>
2610         public string RemoteHostname_str;
2611 
2612         /// <summary>
2613         /// VLAN ID
2614         /// </summary>
2615         public uint VlanId_u32;
2616     }
2617 
2618     /// <summary>
2619     /// Enumeration of the MAC table
2620     /// </summary>
2621     public class VpnRpcEnumMacTable
2622     {
2623         /// <summary>
2624         /// The Virtual Hub name
2625         /// </summary>
2626         public string HubName_str;
2627 
2628         /// <summary>
2629         /// MAC table
2630         /// </summary>
2631         public VpnRpcEnumMacTableItem[] MacTable;
2632     }
2633 
2634     /// <summary>
2635     /// NAT Entry Protocol Number
2636     /// </summary>
2637     public enum VpnRpcNatProtocol
2638     {
2639         /// <summary>
2640         ///  TCP
2641         /// </summary>
2642         TCP = 0,
2643 
2644         /// <summary>
2645         /// UDP
2646         /// </summary>
2647         UDP = 1,
2648 
2649         /// <summary>
2650         ///  DNS
2651         /// </summary>
2652         DNS = 2,
2653 
2654         /// <summary>
2655         /// ICMP
2656         /// </summary>
2657         ICMP = 3,
2658     }
2659 
2660     /// <summary>
2661     /// State of NAT session (TCP)
2662     /// </summary>
2663     public enum VpnRpcNatTcpState
2664     {
2665         /// <summary>
2666         /// Connecting
2667         /// </summary>
2668         Connecting = 0,
2669 
2670         /// <summary>
2671         /// Send the RST (Connection failure or disconnected)
2672         /// </summary>
2673         SendReset = 1,
2674 
2675         /// <summary>
2676         /// Connection complete
2677         /// </summary>
2678         Connected = 2,
2679 
2680         /// <summary>
2681         /// Connection established
2682         /// </summary>
2683         Established = 3,
2684 
2685         /// <summary>
2686         /// Wait for socket disconnection
2687         /// </summary>
2688         WaitDisconnect = 4,
2689     }
2690 
2691     /// <summary>
2692     /// VpnRpcEnumNat List Item
2693     /// </summary>
2694     public class VpnRpcEnumNatItem
2695     {
2696         /// <summary>
2697         /// ID
2698         /// </summary>
2699         public uint Id_u32;
2700 
2701         /// <summary>
2702         /// Protocol
2703         /// </summary>
2704         public VpnRpcNatProtocol Protocol_u32;
2705 
2706         /// <summary>
2707         /// Source IP address
2708         /// </summary>
2709         public string SrcIp_ip;
2710 
2711         /// <summary>
2712         /// Source host name
2713         /// </summary>
2714         public string SrcHost_str;
2715 
2716         /// <summary>
2717         /// Source port number
2718         /// </summary>
2719         public uint SrcPort_u32;
2720 
2721         /// <summary>
2722         /// Destination IP address
2723         /// </summary>
2724         public string DestIp_ip;
2725 
2726         /// <summary>
2727         /// Destination host name
2728         /// </summary>
2729         public string DestHost_str;
2730 
2731         /// <summary>
2732         /// Destination port number
2733         /// </summary>
2734         public uint DestPort_u32;
2735 
2736         /// <summary>
2737         /// Connection time
2738         /// </summary>
2739         public DateTime CreatedTime_dt;
2740 
2741         /// <summary>
2742         /// Last communication time
2743         /// </summary>
2744         public DateTime LastCommTime_dt;
2745 
2746         /// <summary>
2747         /// Transmission size
2748         /// </summary>
2749         public ulong SendSize_u64;
2750 
2751         /// <summary>
2752         /// Receive size
2753         /// </summary>
2754         public ulong RecvSize_u64;
2755 
2756         /// <summary>
2757         /// TCP state
2758         /// </summary>
2759         public VpnRpcNatTcpState TcpStatus_u32;
2760     }
2761 
2762     /// <summary>
2763     /// RPC_ENUM_NAT
2764     /// </summary>
2765     public class VpnRpcEnumNat
2766     {
2767         /// <summary>
2768         /// Virtual Hub Name
2769         /// </summary>
2770         public string HubName_str;
2771 
2772         /// <summary>
2773         /// NAT item
2774         /// </summary>
2775         public VpnRpcEnumNatItem[] NatTable;
2776     }
2777 
2778     /// <summary>
2779     /// Enumeration item of VPN session
2780     /// </summary>
2781     public class VpnRpcEnumSessionItem
2782     {
2783         /// <summary>
2784         /// Session name
2785         /// </summary>
2786         public string Name_str;
2787 
2788         /// <summary>
2789         /// Remote session
2790         /// </summary>
2791         public bool RemoteSession_bool;
2792 
2793         /// <summary>
2794         /// Remote server name
2795         /// </summary>
2796         public string RemoteHostname_str;
2797 
2798         /// <summary>
2799         /// User name
2800         /// </summary>
2801         public string Username_str;
2802 
2803         /// <summary>
2804         /// IP address
2805         /// </summary>
2806         public string ClientIP_ip;
2807 
2808         /// <summary>
2809         /// Host name
2810         /// </summary>
2811         public string Hostname_str;
2812 
2813         /// <summary>
2814         /// Maximum number of underlying TCP connections
2815         /// </summary>
2816         public uint MaxNumTcp_u32;
2817 
2818         /// <summary>
2819         /// Number of current underlying TCP connections
2820         /// </summary>
2821         public uint CurrentNumTcp_u32;
2822 
2823         /// <summary>
2824         /// Packet size transmitted
2825         /// </summary>
2826         public ulong PacketSize_u64;
2827 
2828         /// <summary>
2829         /// Number of packets transmitted
2830         /// </summary>
2831         public ulong PacketNum_u64;
2832 
2833         /// <summary>
2834         /// Is a Cascade VPN session
2835         /// </summary>
2836         public bool LinkMode_bool;
2837 
2838         /// <summary>
2839         /// Is a SecureNAT VPN session
2840         /// </summary>
2841         public bool SecureNATMode_bool;
2842 
2843         /// <summary>
2844         /// Is the VPN session for Local Bridge
2845         /// </summary>
2846         public bool BridgeMode_bool;
2847 
2848         /// <summary>
2849         /// Is a Layer-3 Switch VPN session
2850         /// </summary>
2851         public bool Layer3Mode_bool;
2852 
2853         /// <summary>
2854         /// Is in Bridge Mode
2855         /// </summary>
2856         public bool Client_BridgeMode_bool;
2857 
2858         /// <summary>
2859         /// Is in Monitor Mode
2860         /// </summary>
2861         public bool Client_MonitorMode_bool;
2862 
2863         /// <summary>
2864         /// VLAN ID
2865         /// </summary>
2866         public uint VLanId_u32;
2867 
2868         /// <summary>
2869         /// Unique ID of the VPN Session
2870         /// </summary>
2871         public byte[] UniqueId_bin;
2872 
2873         /// <summary>
2874         /// Creation date and time
2875         /// </summary>
2876         public DateTime CreatedTime_dt;
2877 
2878         /// <summary>
2879         /// Last communication date and time
2880         /// </summary>
2881         public DateTime LastCommTime_dt;
2882     }
2883 
2884     /// <summary>
2885     /// Enumerate VPN sessions
2886     /// </summary>
2887     public class VpnRpcEnumSession
2888     {
2889         /// <summary>
2890         /// The Virtual Hub name
2891         /// </summary>
2892         public string HubName_str;
2893 
2894         /// <summary>
2895         /// VPN sessions list
2896         /// </summary>
2897         public VpnRpcEnumSessionItem[] SessionList;
2898     }
2899 
2900     /// <summary>
2901     /// Enumeration item of user
2902     /// </summary>
2903     public class VpnRpcEnumUserItem
2904     {
2905         /// <summary>
2906         /// User name
2907         /// </summary>
2908         public string Name_str;
2909 
2910         /// <summary>
2911         /// Group name
2912         /// </summary>
2913         public string GroupName_str;
2914 
2915         /// <summary>
2916         /// Real name
2917         /// </summary>
2918         public string Realname_utf;
2919 
2920         /// <summary>
2921         /// Note
2922         /// </summary>
2923         public string Note_utf;
2924 
2925         /// <summary>
2926         /// Authentication method
2927         /// </summary>
2928         public VpnRpcUserAuthType AuthType_u32;
2929 
2930         /// <summary>
2931         /// Number of logins
2932         /// </summary>
2933         public uint NumLogin_u32;
2934 
2935         /// <summary>
2936         /// Last login date and time
2937         /// </summary>
2938         public DateTime LastLoginTime_dt;
2939 
2940         /// <summary>
2941         /// Access denied
2942         /// </summary>
2943         public bool DenyAccess_bool;
2944 
2945         /// <summary>
2946         /// Flag of whether the traffic variable is set
2947         /// </summary>
2948         public bool IsTrafficFilled_bool;
2949 
2950         /// <summary>
2951         /// Flag of whether expiration date variable is set
2952         /// </summary>
2953         public bool IsExpiresFilled_bool;
2954 
2955         /// <summary>
2956         /// Expiration date
2957         /// </summary>
2958         public DateTime Expires_dt;
2959 
2960         /// <summary>
2961         /// Number of broadcast packets (Recv)
2962         /// </summary>
2963         [JsonProperty("Ex.Recv.BroadcastBytes_u64")]
2964         public ulong Recv_BroadcastBytes_u64;
2965 
2966         /// <summary>
2967         /// Broadcast bytes (Recv)
2968         /// </summary>
2969         [JsonProperty("Ex.Recv.BroadcastCount_u64")]
2970         public ulong Recv_BroadcastCount_u64;
2971 
2972         /// <summary>
2973         /// Unicast count (Recv)
2974         /// </summary>
2975         [JsonProperty("Ex.Recv.UnicastBytes_u64")]
2976         public ulong Recv_UnicastBytes_u64;
2977 
2978         /// <summary>
2979         /// Unicast bytes (Recv)
2980         /// </summary>
2981         [JsonProperty("Ex.Recv.UnicastCount_u64")]
2982         public ulong Recv_UnicastCount_u64;
2983 
2984         /// <summary>
2985         /// Number of broadcast packets (Send)
2986         /// </summary>
2987         [JsonProperty("Ex.Send.BroadcastBytes_u64")]
2988         public ulong Send_BroadcastBytes_u64;
2989 
2990         /// <summary>
2991         /// Broadcast bytes (Send)
2992         /// </summary>
2993         [JsonProperty("Ex.Send.BroadcastCount_u64")]
2994         public ulong Send_BroadcastCount_u64;
2995 
2996         /// <summary>
2997         /// Unicast bytes (Send)
2998         /// </summary>
2999         [JsonProperty("Ex.Send.UnicastBytes_u64")]
3000         public ulong Send_UnicastBytes_u64;
3001 
3002         /// <summary>
3003         /// Unicast bytes (Send)
3004         /// </summary>
3005         [JsonProperty("Ex.Send.UnicastCount_u64")]
3006         public ulong Send_UnicastCount_u64;
3007     }
3008 
3009     /// <summary>
3010     /// Enumeration of user
3011     /// </summary>
3012     public class VpnRpcEnumUser
3013     {
3014         /// <summary>
3015         /// The Virtual Hub name
3016         /// </summary>
3017         public string HubName_str;
3018 
3019         /// <summary>
3020         /// User list
3021         /// </summary>
3022         public VpnRpcEnumUserItem[] UserList;
3023     }
3024 
3025     /// <summary>
3026     /// Source IP Address Limit List Item
3027     /// </summary>
3028     public class VpnAc
3029     {
3030         /// <summary>
3031         /// ID
3032         /// </summary>
3033         public uint Id_u32;
3034 
3035         /// <summary>
3036         /// Priority
3037         /// </summary>
3038         public uint Priority_u32;
3039 
3040         /// <summary>
3041         /// Deny access
3042         /// </summary>
3043         public bool Deny_bool;
3044 
3045         /// <summary>
3046         /// Set true if you want to specify the SubnetMask_ip item.
3047         /// </summary>
3048         public bool Masked_bool;
3049 
3050         /// <summary>
3051         /// IP address
3052         /// </summary>
3053         public string IpAddress_ip;
3054 
3055         /// <summary>
3056         /// Subnet mask, valid only if Masked_bool == true
3057         /// </summary>
3058         public string SubnetMask_ip;
3059     }
3060 
3061     /// <summary>
3062     /// Source IP Address Limit List
3063     /// </summary>
3064     public class VpnRpcAcList
3065     {
3066         /// <summary>
3067         /// The Virtual Hub name
3068         /// </summary>
3069         public string HubName_str;
3070 
3071         /// <summary>
3072         /// Source IP Address Limit List
3073         /// </summary>
3074         public VpnAc[] ACList;
3075     }
3076 
3077     /// <summary>
3078     /// Message
3079     /// </summary>
3080     public class VpnRpcMsg
3081     {
3082         /// <summary>
3083         /// The Virtual Hub name
3084         /// </summary>
3085         public string HubName_str;
3086 
3087         /// <summary>
3088         /// Message (Unicode strings acceptable)
3089         /// </summary>
3090         public byte[] Msg_bin;
3091     }
3092 
3093     /// <summary>
3094     /// Get / Set the Azure state
3095     /// </summary>
3096     public class VpnRpcAzureStatus
3097     {
3098         /// <summary>
3099         /// Whether VPN Azure Function is Enabled
3100         /// </summary>
3101         public bool IsEnabled_bool;
3102 
3103         /// <summary>
3104         /// Whether connection to VPN Azure Cloud Server is established
3105         /// </summary>
3106         public bool IsConnected_bool;
3107     }
3108 
3109     /// <summary>
3110     /// Local Bridge support information
3111     /// </summary>
3112     public class VpnRpcBridgeSupport
3113     {
3114         /// <summary>
3115         /// Whether the OS supports the Local Bridge function
3116         /// </summary>
3117         public bool IsBridgeSupportedOs_bool;
3118 
3119         /// <summary>
3120         /// Whether WinPcap is necessary to install
3121         /// </summary>
3122         public bool IsWinPcapNeeded_bool;
3123     }
3124 
3125     /// <summary>
3126     /// Get the CA of HUB
3127     /// </summary>
3128     public class VpnRpcHubGetCA
3129     {
3130         /// <summary>
3131         /// The Virtual Hub name
3132         /// </summary>
3133         public string HubName_str;
3134 
3135         /// <summary>
3136         /// The key id of the certificate
3137         /// </summary>
3138         public uint Key_u32;
3139 
3140         /// <summary>
3141         /// The body of the X.509 certificate
3142         /// </summary>
3143         public byte[] Cert_bin;
3144     }
3145 
3146     /// <summary>
3147     /// Caps item of the VPN Server
3148     /// </summary>
3149     public class VpnCaps
3150     {
3151         /// <summary>
3152         /// Name
3153         /// </summary>
3154         public string CapsName_str;
3155 
3156         /// <summary>
3157         /// Value
3158         /// </summary>
3159         public uint CapsValue_u32;
3160 
3161         /// <summary>
3162         /// Descrption
3163         /// </summary>
3164         public string CapsDescrption_utf;
3165     }
3166 
3167     /// <summary>
3168     /// Caps list of the VPN Server
3169     ///</summary>
3170     public class VpnCapslist
3171     {
3172         /// <summary>
3173         /// Caps list of the VPN Server
3174         /// </summary>
3175         public VpnCaps[] CapsList;
3176     }
3177 
3178     /// <summary>
3179     /// Config operation
3180     /// </summary>
3181     public class VpnRpcConfig
3182     {
3183         /// <summary>
3184         /// File name (valid only for returning from the server)
3185         /// </summary>
3186         public string FileName_str;
3187 
3188         /// <summary>
3189         /// File data
3190         /// </summary>
3191         public byte[] FileData_bin;
3192     }
3193 
3194     /// <summary>
3195     /// Connection information
3196     /// </summary>
3197     public class VpnRpcConnectionInfo
3198     {
3199         /// <summary>
3200         /// Connection name
3201         /// </summary>
3202         public string Name_str;
3203 
3204         /// <summary>
3205         /// Type
3206         /// </summary>
3207         public VpnRpcConnectionType Type_u32;
3208 
3209         /// <summary>
3210         /// Host name
3211         /// </summary>
3212         public string Hostname_str;
3213 
3214         /// <summary>
3215         /// IP address
3216         /// </summary>
3217         public string Ip_ip;
3218 
3219         /// <summary>
3220         /// Port number
3221         /// </summary>
3222         public uint Port_u32;
3223 
3224         /// <summary>
3225         /// Connected time
3226         /// </summary>
3227         public DateTime ConnectedTime_dt;
3228 
3229         /// <summary>
3230         /// Server string
3231         /// </summary>
3232         public string ServerStr_str;
3233 
3234         /// <summary>
3235         /// Server version
3236         /// </summary>
3237         public uint ServerVer_u32;
3238 
3239         /// <summary>
3240         /// Server build number
3241         /// </summary>
3242         public uint ServerBuild_u32;
3243 
3244         /// <summary>
3245         /// Client string
3246         /// </summary>
3247         public string ClientStr_str;
3248 
3249         /// <summary>
3250         /// Client version
3251         /// </summary>
3252         public uint ClientVer_u32;
3253 
3254         /// <summary>
3255         /// Client build number
3256         /// </summary>
3257         public uint ClientBuild_u32;
3258     }
3259 
3260     /// <summary>
3261     /// Proxy type
3262     /// </summary>
3263     public enum VpnRpcProxyType
3264     {
3265         /// <summary>
3266         /// Direct TCP connection
3267         /// </summary>
3268         Direct = 0,
3269 
3270         /// <summary>
3271         /// Connection via HTTP proxy server
3272         /// </summary>
3273         HTTP = 1,
3274 
3275         /// <summary>
3276         /// Connection via SOCKS proxy server
3277         /// </summary>
3278         SOCKS = 2,
3279     }
3280 
3281     /// <summary>
3282     /// The current status of the DDNS
3283     /// </summary>
3284     public class VpnDDnsClientStatus
3285     {
3286         /// <summary>
3287         /// Last error code (IPv4)
3288         /// </summary>
3289         public uint Err_IPv4_u32;
3290 
3291         /// <summary>
3292         /// Last error string (IPv4)
3293         /// </summary>
3294         public string ErrStr_IPv4_utf;
3295 
3296         /// <summary>
3297         /// Last error code (IPv6)
3298         /// </summary>
3299         public uint Err_IPv6_u32;
3300 
3301         /// <summary>
3302         /// Last error string (IPv6)
3303         /// </summary>
3304         public string ErrStr_IPv6_utf;
3305 
3306         /// <summary>
3307         /// Current DDNS host name
3308         /// </summary>
3309         public string CurrentHostName_str;
3310 
3311         /// <summary>
3312         /// Current FQDN of the DDNS hostname
3313         /// </summary>
3314         public string CurrentFqdn_str;
3315 
3316         /// <summary>
3317         /// DDNS suffix
3318         /// </summary>
3319         public string DnsSuffix_str;
3320 
3321         /// <summary>
3322         /// Current IPv4 address of the VPN Server
3323         /// </summary>
3324         public string CurrentIPv4_str;
3325 
3326         /// <summary>
3327         /// Current IPv6 address of the VPN Server
3328         /// </summary>
3329         public string CurrentIPv6_str;
3330     }
3331 
3332     /// <summary>
3333     /// Internet connection settings
3334     /// </summary>
3335     public class VpnInternetSetting
3336     {
3337         /// <summary>
3338         /// Type of proxy server
3339         /// </summary>
3340         public VpnRpcProxyType ProxyType_u32;
3341 
3342         /// <summary>
3343         /// Proxy server host name
3344         /// </summary>
3345         public string ProxyHostName_str;
3346 
3347         /// <summary>
3348         /// Proxy server port number
3349         /// </summary>
3350         public uint ProxyPort_u32;
3351 
3352         /// <summary>
3353         /// Proxy server user name
3354         /// </summary>
3355         public string ProxyUsername_str;
3356 
3357         /// <summary>
3358         /// Proxy server password
3359         /// </summary>
3360         public string ProxyPassword_str;
3361     }
3362 
3363     /// <summary>
3364     /// Administration options
3365     /// </summary>
3366     public class VpnAdminOption
3367     {
3368         /// <summary>
3369         /// Name
3370         /// </summary>
3371         public string Name_str;
3372 
3373         /// <summary>
3374         /// Data
3375         /// </summary>
3376         public uint Value_u32;
3377 
3378         /// <summary>
3379         /// Descrption
3380         /// </summary>
3381         public string Descrption_utf;
3382     }
3383 
3384     /// <summary>
3385     /// Administration options list
3386     /// </summary>
3387     public class VpnRpcAdminOption
3388     {
3389         /// <summary>
3390         /// Virtual HUB name
3391         /// </summary>
3392         public string HubName_str;
3393 
3394         /// <summary>
3395         /// List data
3396         /// </summary>
3397         public VpnAdminOption[] AdminOptionList;
3398     }
3399 
3400     /// <summary>
3401     /// Connection state to the controller
3402     /// </summary>
3403     public class VpnRpcFarmConnectionStatus
3404     {
3405         /// <summary>
3406         /// IP address
3407         /// </summary>
3408         public string Ip_ip;
3409 
3410         /// <summary>
3411         /// Port number
3412         /// </summary>
3413         public uint Port_u32;
3414 
3415         /// <summary>
3416         /// Online state
3417         /// </summary>
3418         public bool Online_bool;
3419 
3420         /// <summary>
3421         /// Last error code
3422         /// </summary>
3423         public uint LastError_u32;
3424 
3425         /// <summary>
3426         /// Connection start time
3427         /// </summary>
3428         public DateTime StartedTime_dt;
3429 
3430         /// <summary>
3431         /// First connection time
3432         /// </summary>
3433         public DateTime FirstConnectedTime_dt;
3434 
3435         /// <summary>
3436         /// Connection time of this time
3437         /// </summary>
3438         public DateTime CurrentConnectedTime_dt;
3439 
3440         /// <summary>
3441         /// Number of retries
3442         /// </summary>
3443         public uint NumTry_u32;
3444 
3445         /// <summary>
3446         /// Number of connection count
3447         /// </summary>
3448         public uint NumConnected_u32;
3449 
3450         /// <summary>
3451         /// Connection failure count
3452         /// </summary>
3453         public uint NumFailed_u32;
3454     }
3455 
3456     /// <summary>
3457     /// HUB item of each farm member
3458     /// </summary>
3459     public class VpnRpcFarmHub
3460     {
3461         /// <summary>
3462         /// The Virtual Hub name
3463         /// </summary>
3464         public string HubName_str;
3465 
3466         /// <summary>
3467         /// Dynamic HUB
3468         /// </summary>
3469         public bool DynamicHub_bool;
3470     }
3471 
3472 
3473     /// <summary>
3474     /// Server farm member information acquisition
3475     /// </summary>
3476     public class VpnRpcFarmInfo
3477     {
3478         /// <summary>
3479         /// ID
3480         /// </summary>
3481         public uint Id_u32;
3482 
3483         /// <summary>
3484         /// The flag if the server is Cluster Controller (false: Cluster Member servers)
3485         /// </summary>
3486         public bool Controller_bool;
3487 
3488         /// <summary>
3489         /// Connection Established Time
3490         /// </summary>
3491         public DateTime ConnectedTime_dt;
3492 
3493         /// <summary>
3494         /// IP address
3495         /// </summary>
3496         public string Ip_ip;
3497 
3498         /// <summary>
3499         /// Host name
3500         /// </summary>
3501         public string Hostname_str;
3502 
3503         /// <summary>
3504         /// Point
3505         /// </summary>
3506         public uint Point_u32;
3507 
3508         /// <summary>
3509         /// Number of Public Ports
3510         /// </summary>
3511         public uint NumPort_u32;
3512 
3513         /// <summary>
3514         /// Public Ports
3515         /// </summary>
3516         public uint[] Ports_u32;
3517 
3518         /// <summary>
3519         /// Server certificate
3520         /// </summary>
3521         public byte[] ServerCert_bin;
3522 
3523         /// <summary>
3524         /// Number of farm HUB
3525         /// </summary>
3526         public uint NumFarmHub_u32;
3527 
3528         /// <summary>
3529         /// The hosted Virtual Hub list
3530         /// </summary>
3531         public VpnRpcFarmHub[] HubsList;
3532 
3533         /// <summary>
3534         /// Number of hosted VPN sessions
3535         /// </summary>
3536         public uint NumSessions_u32;
3537 
3538         /// <summary>
3539         /// Number of TCP connections
3540         /// </summary>
3541         public uint NumTcpConnections_u32;
3542 
3543         /// <summary>
3544         /// Performance Standard Ratio
3545         /// </summary>
3546         public uint Weight_u32;
3547     }
3548 
3549     /// <summary>
3550     /// Server farm configuration
3551     /// </summary>
3552     public class VpnRpcFarm
3553     {
3554         /// <summary>
3555         /// Type of server
3556         /// </summary>
3557         public VpnRpcServerType ServerType_u32;
3558 
3559         /// <summary>
3560         /// Valid only for Cluster Member servers. Number of the Ports_u32 element.
3561         /// </summary>
3562         public uint NumPort_u32;
3563 
3564         /// <summary>
3565         /// Valid only for Cluster Member servers. Specify the list of public port numbers on this server. The list must have at least one public port number set, and it is also possible to set multiple public port numbers.
3566         /// </summary>
3567         public uint[] Ports_u32;
3568 
3569         /// <summary>
3570         /// Valid only for Cluster Member servers. Specify the public IP address of this server. If you wish to leave public IP address unspecified, specify the empty string. When a public IP address is not specified, the IP address of the network interface used when connecting to the cluster controller will be automatically used.
3571         /// </summary>
3572         public string PublicIp_ip;
3573 
3574         /// <summary>
3575         /// Valid only for Cluster Member servers. Specify the host name or IP address of the destination cluster controller.
3576         /// </summary>
3577         public string ControllerName_str;
3578 
3579         /// <summary>
3580         /// Valid only for Cluster Member servers. Specify the TCP port number of the destination cluster controller.
3581         /// </summary>
3582         public uint ControllerPort_u32;
3583 
3584         /// <summary>
3585         /// Valid only for Cluster Member servers. Specify the password required to connect to the destination controller. It needs to be the same as an administrator password on the destination controller.
3586         /// </summary>
3587         public string MemberPasswordPlaintext_str;
3588 
3589         /// <summary>
3590         /// This sets a value for the performance standard ratio of this VPN Server. This is the standard value for when load balancing is performed in the cluster. For example, making only one machine 200 while the other members have a status of 100, will regulate that machine to receive twice as many connections as the other members. Specify 1 or higher for the value. If this parameter is left unspecified, 100 will be used.
3591         /// </summary>
3592         public uint Weight_u32;
3593 
3594         /// <summary>
3595         /// Valid only for Cluster Controller server. By specifying true, the VPN Server will operate only as a controller on the cluster and it will always distribute general VPN Client connections to members other than itself. This function is used in high-load environments.
3596         /// </summary>
3597         public bool ControllerOnly_bool;
3598     }
3599 
3600     /// <summary>
3601     /// Log switch type
3602     /// </summary>
3603     public enum VpnRpcLogSwitchType
3604     {
3605         /// <summary>
3606         /// No switching
3607         /// </summary>
3608         No = 0,
3609 
3610         /// <summary>
3611         /// Secondly basis
3612         /// </summary>
3613         Second = 1,
3614 
3615         /// <summary>
3616         /// Minutely basis
3617         /// </summary>
3618         Minute = 2,
3619 
3620         /// <summary>
3621         /// Hourly basis
3622         /// </summary>
3623         Hour = 3,
3624 
3625         /// <summary>
3626         /// Daily basis
3627         /// </summary>
3628         Day = 4,
3629 
3630         /// <summary>
3631         /// Monthly basis
3632         /// </summary>
3633         Month = 5,
3634     }
3635 
3636     /// <summary>
3637     /// Packet log settings
3638     /// </summary>
3639     public enum VpnRpcPacketLogSetting
3640     {
3641         /// <summary>
3642         /// Not save
3643         /// </summary>
3644         None = 0,
3645 
3646         /// <summary>
3647         /// Only header
3648         /// </summary>
3649         Header = 1,
3650 
3651         /// <summary>
3652         /// All payloads
3653         /// </summary>
3654         All = 2,
3655     }
3656 
3657     /// <summary>
3658     /// Packet log settings array index
3659     /// </summary>
3660     public enum VpnRpcPacketLogSettingIndex
3661     {
3662         /// <summary>
3663         /// TCP connection log
3664         /// </summary>
3665         TcpConnection = 0,
3666 
3667         /// <summary>
3668         /// TCP packet log
3669         /// </summary>
3670         TcpAll = 1,
3671 
3672         /// <summary>
3673         /// DHCP Log
3674         /// </summary>
3675         Dhcp = 2,
3676 
3677         /// <summary>
3678         /// UDP log
3679         /// </summary>
3680         Udp = 3,
3681 
3682         /// <summary>
3683         /// ICMP log
3684         /// </summary>
3685         Icmp = 4,
3686 
3687         /// <summary>
3688         /// IP log
3689         /// </summary>
3690         Ip = 5,
3691 
3692         /// <summary>
3693         ///  ARP log
3694         /// </summary>
3695         Arp = 6,
3696 
3697         /// <summary>
3698         /// Ethernet log
3699         /// </summary>
3700         Ethernet = 7,
3701     }
3702 
3703     /// <summary>
3704     /// HUB log settings
3705     /// </summary>
3706     public class VpnRpcHubLog
3707     {
3708         /// <summary>
3709         /// The Virtual Hub name
3710         /// </summary>
3711         public string HubName_str;
3712 
3713         /// <summary>
3714         /// The flag to enable / disable saving the security log
3715         /// </summary>
3716         public bool SaveSecurityLog_bool;
3717 
3718         /// <summary>
3719         /// The log filename switching setting of the security log
3720         /// </summary>
3721         public VpnRpcLogSwitchType SecurityLogSwitchType_u32;
3722 
3723         /// <summary>
3724         /// The flag to enable / disable saving the security log
3725         /// </summary>
3726         public bool SavePacketLog_bool;
3727 
3728         /// <summary>
3729         /// The log filename switching settings of the packet logs
3730         /// </summary>
3731         public VpnRpcLogSwitchType PacketLogSwitchType_u32;
3732 
3733         /// <summary>
3734         /// Specify the save contents of the packet logs (uint * 16 array). The index numbers: TcpConnection = 0, TcpAll = 1, DHCP = 2, UDP = 3, ICMP = 4, IP = 5, ARP = 6, Ethernet = 7.
3735         /// </summary>
3736         public VpnRpcPacketLogSetting[] PacketLogConfig_u32 = new VpnRpcPacketLogSetting[16];
3737     }
3738 
3739     /// <summary>
3740     /// RADIUS server options
3741     /// </summary>
3742     public class VpnRpcRadius
3743     {
3744         /// <summary>
3745         /// The Virtual Hub name
3746         /// </summary>
3747         public string HubName_str;
3748 
3749         /// <summary>
3750         /// RADIUS server name
3751         /// </summary>
3752         public string RadiusServerName_str;
3753 
3754         /// <summary>
3755         /// RADIUS port number
3756         /// </summary>
3757         public uint RadiusPort_u32;
3758 
3759         /// <summary>
3760         /// Secret key
3761         /// </summary>
3762         public string RadiusSecret_str;
3763 
3764         /// <summary>
3765         /// Radius retry interval
3766         /// </summary>
3767         public uint RadiusRetryInterval_u32;
3768     }
3769 
3770     /// <summary>
3771     /// Get the state HUB
3772     /// </summary>
3773     public class VpnRpcHubStatus
3774     {
3775         /// <summary>
3776         /// The Virtual Hub name
3777         /// </summary>
3778         public string HubName_str;
3779 
3780         /// <summary>
3781         /// Online
3782         /// </summary>
3783         public bool Online_bool;
3784 
3785         /// <summary>
3786         /// Type of HUB
3787         /// </summary>
3788         public VpnRpcHubType HubType_u32;
3789 
3790         /// <summary>
3791         /// Number of sessions
3792         /// </summary>
3793         public uint NumSessions_u32;
3794 
3795         /// <summary>
3796         /// Number of sessions (client mode)
3797         /// </summary>
3798         public uint NumSessionsClient_u32;
3799 
3800         /// <summary>
3801         /// Number of sessions (bridge mode)
3802         /// </summary>
3803         public uint NumSessionsBridge_u32;
3804 
3805         /// <summary>
3806         /// Number of Access list entries
3807         /// </summary>
3808         public uint NumAccessLists_u32;
3809 
3810         /// <summary>
3811         /// Number of users
3812         /// </summary>
3813         public uint NumUsers_u32;
3814 
3815         /// <summary>
3816         /// Number of groups
3817         /// </summary>
3818         public uint NumGroups_u32;
3819 
3820         /// <summary>
3821         /// Number of MAC table entries
3822         /// </summary>
3823         public uint NumMacTables_u32;
3824 
3825         /// <summary>
3826         /// Number of IP table entries
3827         /// </summary>
3828         public uint NumIpTables_u32;
3829 
3830         /// <summary>
3831         /// Number of broadcast packets (Recv)
3832         /// </summary>
3833         [JsonProperty("Recv.BroadcastBytes_u64")]
3834         public ulong Recv_BroadcastBytes_u64;
3835 
3836         /// <summary>
3837         /// Broadcast bytes (Recv)
3838         /// </summary>
3839         [JsonProperty("Recv.BroadcastCount_u64")]
3840         public ulong Recv_BroadcastCount_u64;
3841 
3842         /// <summary>
3843         /// Unicast count (Recv)
3844         /// </summary>
3845         [JsonProperty("Recv.UnicastBytes_u64")]
3846         public ulong Recv_UnicastBytes_u64;
3847 
3848         /// <summary>
3849         /// Unicast bytes (Recv)
3850         /// </summary>
3851         [JsonProperty("Recv.UnicastCount_u64")]
3852         public ulong Recv_UnicastCount_u64;
3853 
3854         /// <summary>
3855         /// Number of broadcast packets (Send)
3856         /// </summary>
3857         [JsonProperty("Send.BroadcastBytes_u64")]
3858         public ulong Send_BroadcastBytes_u64;
3859 
3860         /// <summary>
3861         /// Broadcast bytes (Send)
3862         /// </summary>
3863         [JsonProperty("Send.BroadcastCount_u64")]
3864         public ulong Send_BroadcastCount_u64;
3865 
3866         /// <summary>
3867         /// Unicast bytes (Send)
3868         /// </summary>
3869         [JsonProperty("Send.UnicastBytes_u64")]
3870         public ulong Send_UnicastBytes_u64;
3871 
3872         /// <summary>
3873         /// Unicast bytes (Send)
3874         /// </summary>
3875         [JsonProperty("Send.UnicastCount_u64")]
3876         public ulong Send_UnicastCount_u64;
3877 
3878         /// <summary>
3879         /// Whether SecureNAT is enabled
3880         /// </summary>
3881         public bool SecureNATEnabled_bool;
3882 
3883         /// <summary>
3884         /// Last communication date and time
3885         /// </summary>
3886         public DateTime LastCommTime_dt;
3887 
3888         /// <summary>
3889         /// Last login date and time
3890         /// </summary>
3891         public DateTime LastLoginTime_dt;
3892 
3893         /// <summary>
3894         /// Creation date and time
3895         /// </summary>
3896         public DateTime CreatedTime_dt;
3897 
3898         /// <summary>
3899         /// Number of logins
3900         /// </summary>
3901         public uint NumLogin_u32;
3902     }
3903 
3904     /// <summary>
3905     /// List of services provided by IPsec server
3906     /// </summary>
3907     public class VpnIPsecServices
3908     {
3909         /// <summary>
3910         /// Enable or Disable the L2TP Server Function (Raw L2TP with No Encryptions). To accept special VPN clients, enable this option.
3911         /// </summary>
3912         public bool L2TP_Raw_bool;
3913 
3914         /// <summary>
3915         /// Enable or Disable the L2TP over IPsec Server Function. To accept VPN connections from iPhone, iPad, Android, Windows or Mac OS X, enable this option.
3916         /// </summary>
3917         public bool L2TP_IPsec_bool;
3918 
3919         /// <summary>
3920         /// Enable or Disable the EtherIP / L2TPv3 over IPsec Server Function (for site-to-site VPN Server function). Router Products which are compatible with EtherIP over IPsec can connect to Virtual Hubs on the VPN Server and establish Layer-2 (Ethernet) Bridging.
3921         /// </summary>
3922         public bool EtherIP_IPsec_bool;
3923 
3924         /// <summary>
3925         /// Specify the IPsec Pre-Shared Key. An IPsec Pre-Shared Key is also called as "PSK" or "secret". Specify it equal or less than 8 letters, and distribute it to every users who will connect to the VPN Server. Please note: Google Android 4.0 has a bug which a Pre-Shared Key with 10 or more letters causes a unexpected behavior. For that reason, the letters of a Pre-Shared Key should be 9 or less characters.
3926         /// </summary>
3927         public string IPsec_Secret_str;
3928 
3929         /// <summary>
3930         /// Specify the default Virtual HUB in a case of omitting the name of HUB on the Username. Users should specify their username such as "Username@Target Virtual HUB Name" to connect this L2TP Server. If the designation of the Virtual Hub is omitted, the above HUB will be used as the target.
3931         /// </summary>
3932         public string L2TP_DefaultHub_str;
3933     }
3934 
3935     /// <summary>
3936     /// Keep alive protocol
3937     /// </summary>
3938     public enum VpnRpcKeepAliveProtocol
3939     {
3940         /// <summary>
3941         /// TCP
3942         /// </summary>
3943         TCP = 0,
3944 
3945         /// <summary>
3946         /// UDP
3947         /// </summary>
3948         UDP = 1,
3949     }
3950 
3951     /// <summary>
3952     /// Keep Alive settings
3953     /// </summary>
3954     public class VpnRpcKeep
3955     {
3956         /// <summary>
3957         /// The flag to enable keep-alive to the Internet
3958         /// </summary>
3959         public bool UseKeepConnect_bool;
3960 
3961         /// <summary>
3962         /// Specify the host name or IP address of the destination
3963         /// </summary>
3964         public string KeepConnectHost_str;
3965 
3966         /// <summary>
3967         /// Specify the port number of the destination
3968         /// </summary>
3969         public uint KeepConnectPort_u32;
3970 
3971         /// <summary>
3972         /// Protocol type
3973         /// </summary>
3974         public VpnRpcKeepAliveProtocol KeepConnectProtocol_u32;
3975 
3976         /// <summary>
3977         /// Interval Between Packets Sends (Seconds)
3978         /// </summary>
3979         public uint KeepConnectInterval_u32;
3980     }
3981 
3982     /// <summary>
3983     /// State of the client session
3984     /// </summary>
3985     public enum VpnRpcClientSessionStatus
3986     {
3987         /// <summary>
3988         /// Connecting
3989         /// </summary>
3990         Connecting = 0,
3991 
3992         /// <summary>
3993         /// Negotiating
3994         /// </summary>
3995         Negotiation = 1,
3996 
3997         /// <summary>
3998         /// During user authentication
3999         /// </summary>
4000         Auth = 2,
4001 
4002         /// <summary>
4003         /// Connection complete
4004         /// </summary>
4005         Established = 3,
4006 
4007         /// <summary>
4008         /// Wait to retry
4009         /// </summary>
4010         Retry = 4,
4011 
4012         /// <summary>
4013         /// Idle state
4014         /// </summary>
4015         Idle = 5,
4016     }
4017 
4018     /// <summary>
4019     /// Get the link state
4020     /// </summary>
4021     public class VpnRpcLinkStatus
4022     {
4023         /// <summary>
4024         /// The Virtual Hub name
4025         /// </summary>
4026         public string HubName_Ex_str;
4027 
4028         /// <summary>
4029         /// The name of the cascade connection
4030         /// </summary>
4031         public string AccountName_utf;
4032 
4033         /// <summary>
4034         /// The flag whether the cascade connection is enabled
4035         /// </summary>
4036         public bool Active_bool;
4037 
4038         /// <summary>
4039         /// The flag whether the cascade connection is established
4040         /// </summary>
4041         public bool Connected_bool;
4042 
4043         /// <summary>
4044         /// The session status
4045         /// </summary>
4046         public VpnRpcClientSessionStatus SessionStatus_u32;
4047 
4048         /// <summary>
4049         /// The destination VPN server name
4050         /// </summary>
4051         public string ServerName_str;
4052 
4053         /// <summary>
4054         /// The port number of the server
4055         /// </summary>
4056         public uint ServerPort_u32;
4057 
4058         /// <summary>
4059         /// Server product name
4060         /// </summary>
4061         public string ServerProductName_str;
4062 
4063         /// <summary>
4064         /// Server product version
4065         /// </summary>
4066         public uint ServerProductVer_u32;
4067 
4068         /// <summary>
4069         /// Server product build number
4070         /// </summary>
4071         public uint ServerProductBuild_u32;
4072 
4073         /// <summary>
4074         /// Server's X.509 certificate
4075         /// </summary>
4076         public byte[] ServerX_bin;
4077 
4078         /// <summary>
4079         /// Client certificate
4080         /// </summary>
4081         public byte[] ClientX_bin;
4082 
4083         /// <summary>
4084         /// Connection start time
4085         /// </summary>
4086         public DateTime StartTime_dt;
4087 
4088         /// <summary>
4089         /// Connection completion time of the first connection
4090         /// </summary>
4091         public DateTime FirstConnectionEstablisiedTime_dt;
4092 
4093         /// <summary>
4094         /// Connection completion time of this connection
4095         /// </summary>
4096         public DateTime CurrentConnectionEstablishTime_dt;
4097 
4098         /// <summary>
4099         /// Number of connections have been established so far
4100         /// </summary>
4101         public uint NumConnectionsEatablished_u32;
4102 
4103         /// <summary>
4104         /// Half-connection
4105         /// </summary>
4106         public bool HalfConnection_bool;
4107 
4108         /// <summary>
4109         /// VoIP / QoS
4110         /// </summary>
4111         public bool QoS_bool;
4112 
4113         /// <summary>
4114         /// Maximum number of the underlying TCP connections
4115         /// </summary>
4116         public uint MaxTcpConnections_u32;
4117 
4118         /// <summary>
4119         /// Number of current underlying TCP connections
4120         /// </summary>
4121         public uint NumTcpConnections_u32;
4122 
4123         /// <summary>
4124         /// Number of underlying inbound TCP connections
4125         /// </summary>
4126         public uint NumTcpConnectionsUpload_u32;
4127 
4128         /// <summary>
4129         /// Number of underlying outbound TCP connections
4130         /// </summary>
4131         public uint NumTcpConnectionsDownload_u32;
4132 
4133         /// <summary>
4134         /// Use of encryption
4135         /// </summary>
4136         public bool UseEncrypt_bool;
4137 
4138         /// <summary>
4139         /// Cipher algorithm name
4140         /// </summary>
4141         public string CipherName_str;
4142 
4143         /// <summary>
4144         /// Use of compression
4145         /// </summary>
4146         public bool UseCompress_bool;
4147 
4148         /// <summary>
4149         /// The flag whether this is a R-UDP session
4150         /// </summary>
4151         public bool IsRUDPSession_bool;
4152 
4153         /// <summary>
4154         /// Underlying physical communication protocol
4155         /// </summary>
4156         public string UnderlayProtocol_str;
4157 
4158         /// <summary>
4159         /// The UDP acceleration is enabled
4160         /// </summary>
4161         public bool IsUdpAccelerationEnabled_bool;
4162 
4163         /// <summary>
4164         /// The UDP acceleration is being actually used
4165         /// </summary>
4166         public bool IsUsingUdpAcceleration_bool;
4167 
4168         /// <summary>
4169         /// Session name
4170         /// </summary>
4171         public string SessionName_str;
4172 
4173         /// <summary>
4174         /// Connection name
4175         /// </summary>
4176         public string ConnectionName_str;
4177 
4178         /// <summary>
4179         /// Session key
4180         /// </summary>
4181         public byte[] SessionKey_bin;
4182 
4183         /// <summary>
4184         /// Total transmitted data size
4185         /// </summary>
4186         public ulong TotalSendSize_u64;
4187 
4188         /// <summary>
4189         /// Total received data size
4190         /// </summary>
4191         public ulong TotalRecvSize_u64;
4192 
4193         /// <summary>
4194         /// Total transmitted data size (no compression)
4195         /// </summary>
4196         public ulong TotalSendSizeReal_u64;
4197 
4198         /// <summary>
4199         /// Total received data size (no compression)
4200         /// </summary>
4201         public ulong TotalRecvSizeReal_u64;
4202 
4203         /// <summary>
4204         /// The flag whether the VPN session is Bridge Mode
4205         /// </summary>
4206         public bool IsBridgeMode_bool;
4207 
4208         /// <summary>
4209         /// The flag whether the VPN session is Monitor mode
4210         /// </summary>
4211         public bool IsMonitorMode_bool;
4212 
4213         /// <summary>
4214         /// VLAN ID
4215         /// </summary>
4216         public uint VLanId_u32;
4217     }
4218 
4219     /// <summary>
4220     /// Setting of SSTP and OpenVPN
4221     /// </summary>
4222     public class VpnOpenVpnSstpConfig
4223     {
4224         /// <summary>
4225         /// Specify true to enable the OpenVPN Clone Server Function. Specify false to disable.
4226         /// </summary>
4227         public bool EnableOpenVPN_bool;
4228 
4229         /// <summary>
4230         /// Specify UDP ports to listen for OpenVPN. Multiple UDP ports can be specified with splitting by space or comma letters, for example: "1194, 2001, 2010, 2012". The default port for OpenVPN is UDP 1194. You can specify any other UDP ports.
4231         /// </summary>
4232         public string OpenVPNPortList_str;
4233 
4234         /// <summary>
4235         /// pecify true to enable the Microsoft SSTP VPN Clone Server Function. Specify false to disable.
4236         /// </summary>
4237         public bool EnableSSTP_bool;
4238     }
4239 
4240     /// <summary>
4241     /// Virtual host option
4242     /// </summary>
4243     public class VpnVhOption
4244     {
4245         /// <summary>
4246         /// Target Virtual HUB name
4247         /// </summary>
4248         public string RpcHubName_str;
4249 
4250         /// <summary>
4251         /// MAC address
4252         /// </summary>
4253         public byte[] MacAddress_bin;
4254 
4255         /// <summary>
4256         /// IP address
4257         /// </summary>
4258         public string Ip_ip;
4259 
4260         /// <summary>
4261         /// Subnet mask
4262         /// </summary>
4263         public string Mask_ip;
4264 
4265         /// <summary>
4266         /// Use flag of the Virtual NAT function
4267         /// </summary>
4268         public bool UseNat_bool;
4269 
4270         /// <summary>
4271         /// MTU value (Standard: 1500)
4272         /// </summary>
4273         public uint Mtu_u32;
4274 
4275         /// <summary>
4276         /// NAT TCP timeout in seconds
4277         /// </summary>
4278         public uint NatTcpTimeout_u32;
4279 
4280         /// <summary>
4281         /// NAT UDP timeout in seconds
4282         /// </summary>
4283         public uint NatUdpTimeout_u32;
4284 
4285         /// <summary>
4286         /// Using flag of DHCP function
4287         /// </summary>
4288         public bool UseDhcp_bool;
4289 
4290         /// <summary>
4291         /// Specify the start point of the address band to be distributed to the client. (Example: 192.168.30.10)
4292         /// </summary>
4293         public string DhcpLeaseIPStart_ip;
4294 
4295         /// <summary>
4296         /// Specify the end point of the address band to be distributed to the client. (Example: 192.168.30.200)
4297         /// </summary>
4298         public string DhcpLeaseIPEnd_ip;
4299 
4300         /// <summary>
4301         /// Specify the subnet mask to be specified for the client. (Example: 255.255.255.0)
4302         /// </summary>
4303         public string DhcpSubnetMask_ip;
4304 
4305         /// <summary>
4306         /// Specify the expiration date in second units for leasing an IP address to a client.
4307         /// </summary>
4308         public uint DhcpExpireTimeSpan_u32;
4309 
4310         /// <summary>
4311         /// Specify the IP address of the default gateway to be notified to the client. You can specify a SecureNAT Virtual Host IP address for this when the SecureNAT Function's Virtual NAT Function has been enabled and is being used also. If you specify 0 or none, then the client will not be notified of the default gateway.
4312         /// </summary>
4313         public string DhcpGatewayAddress_ip;
4314 
4315         /// <summary>
4316         /// Specify the IP address of the primary DNS Server to be notified to the client. You can specify a SecureNAT Virtual Host IP address for this when the SecureNAT Function's Virtual NAT Function has been enabled and is being used also. If you specify empty, then the client will not be notified of the DNS Server address.
4317         /// </summary>
4318         public string DhcpDnsServerAddress_ip;
4319 
4320         /// <summary>
4321         /// Specify the IP address of the secondary DNS Server to be notified to the client. You can specify a SecureNAT Virtual Host IP address for this when the SecureNAT Function's Virtual NAT Function has been enabled and is being used also. If you specify empty, then the client will not be notified of the DNS Server address.
4322         /// </summary>
4323         public string DhcpDnsServerAddress2_ip;
4324 
4325         /// <summary>
4326         /// Specify the domain name to be notified to the client. If you specify none, then the client will not be notified of the domain name.
4327         /// </summary>
4328         public string DhcpDomainName_str;
4329 
4330         /// <summary>
4331         /// Specify whether or not to save the Virtual DHCP Server operation in the Virtual Hub security log. Specify true to save it. This value is interlinked with the Virtual NAT Function log save setting.
4332         /// </summary>
4333         public bool SaveLog_bool;
4334 
4335         /// <summary>
4336         /// The flag to enable the DhcpPushRoutes_str field.
4337         /// </summary>
4338         public bool ApplyDhcpPushRoutes_bool;
4339 
4340         /// <summary>
4341         /// Specify the static routing table to push. Example: "192.168.5.0/255.255.255.0/192.168.4.254, 10.0.0.0/255.0.0.0/192.168.4.253" Split multiple entries (maximum: 64 entries) by comma or space characters. Each entry must be specified in the "IP network address/subnet mask/gateway IP address" format. This Virtual DHCP Server can push the classless static routes (RFC 3442) with DHCP reply messages to VPN clients. Whether or not a VPN client can recognize the classless static routes (RFC 3442) depends on the target VPN client software. SoftEther VPN Client and OpenVPN Client are supporting the classless static routes. On L2TP/IPsec and MS-SSTP protocols, the compatibility depends on the implementation of the client software. You can realize the split tunneling if you clear the default gateway field on the Virtual DHCP Server options. On the client side, L2TP/IPsec and MS-SSTP clients need to be configured not to set up the default gateway for the split tunneling usage. You can also push the classless static routes (RFC 3442) by your existing external DHCP server. In that case, disable the Virtual DHCP Server function on SecureNAT, and you need not to set up the classless routes on this API. See the RFC 3442 to understand the classless routes.
4342         /// </summary>
4343         public string DhcpPushRoutes_str;
4344     }
4345 
4346     /// <summary>
4347     /// RPC_NAT_STATUS
4348     /// </summary>
4349     public class VpnRpcNatStatus
4350     {
4351         /// <summary>
4352         /// Virtual Hub Name
4353         /// </summary>
4354         public string HubName_str;
4355 
4356         /// <summary>
4357         /// Number of TCP sessions
4358         /// </summary>
4359         public uint NumTcpSessions_u32;
4360 
4361         /// <summary>
4362         /// Ntmber of UDP sessions
4363         /// </summary>
4364         public uint NumUdpSessions_u32;
4365 
4366         /// <summary>
4367         /// Nymber of ICMP sessions
4368         /// </summary>
4369         public uint NumIcmpSessions_u32;
4370 
4371         /// <summary>
4372         /// Number of DNS sessions
4373         /// </summary>
4374         public uint NumDnsSessions_u32;
4375 
4376         /// <summary>
4377         /// Number of DHCP clients
4378         /// </summary>
4379         public uint NumDhcpClients_u32;
4380 
4381         /// <summary>
4382         /// Whether the NAT is operating in the Kernel Mode
4383         /// </summary>
4384         public bool IsKernelMode_bool;
4385 
4386         /// <summary>
4387         /// Whether the NAT is operating in the Raw IP Mode
4388         /// </summary>
4389         public bool IsRawIpMode_bool;
4390     }
4391 
4392     /// <summary>
4393     /// Key pair
4394     /// </summary>
4395     public class VpnRpcKeyPair
4396     {
4397         /// <summary>
4398         /// The body of the certificate
4399         /// </summary>
4400         public byte[] Cert_bin;
4401 
4402         /// <summary>
4403         /// The body of the private key
4404         /// </summary>
4405         public byte[] Key_bin;
4406     }
4407 
4408     /// <summary>
4409     /// Single string value
4410     /// </summary>
4411     public class VpnRpcStr
4412     {
4413         /// <summary>
4414         /// A string value
4415         /// </summary>
4416         public string String_str;
4417     }
4418 
4419     /// <summary>
4420     /// Type of VPN Server
4421     /// </summary>
4422     public enum VpnRpcServerType
4423     {
4424         /// <summary>
4425         /// Stand-alone server
4426         /// </summary>
4427         Standalone = 0,
4428 
4429         /// <summary>
4430         /// Farm controller server
4431         /// </summary>
4432         FarmController = 1,
4433 
4434         /// <summary>
4435         /// Farm member server
4436         /// </summary>
4437         FarmMember = 2,
4438     }
4439 
4440     /// <summary>
4441     /// Operating system type
4442     /// </summary>
4443     public enum VpnRpcOsType
4444     {
4445         /// <summary>
4446         /// Windows 95
4447         /// </summary>
4448         WINDOWS_95 = 1100,
4449 
4450         /// <summary>
4451         /// Windows 98
4452         /// </summary>
4453         WINDOWS_98 = 1200,
4454 
4455         /// <summary>
4456         /// Windows Me
4457         /// </summary>
4458         WINDOWS_ME = 1300,
4459 
4460         /// <summary>
4461         /// Windows (unknown)
4462         /// </summary>
4463         WINDOWS_UNKNOWN = 1400,
4464 
4465         /// <summary>
4466         /// Windows NT 4.0 Workstation
4467         /// </summary>
4468         WINDOWS_NT_4_WORKSTATION = 2100,
4469 
4470         /// <summary>
4471         /// Windows NT 4.0 Server
4472         /// </summary>
4473         WINDOWS_NT_4_SERVER = 2110,
4474 
4475         /// <summary>
4476         /// Windows NT 4.0 Server, Enterprise Edition
4477         /// </summary>
4478         WINDOWS_NT_4_SERVER_ENTERPRISE = 2111,
4479 
4480         /// <summary>
4481         /// Windows NT 4.0 Terminal Server
4482         /// </summary>
4483         WINDOWS_NT_4_TERMINAL_SERVER = 2112,
4484 
4485         /// <summary>
4486         /// BackOffice Server 4.5
4487         /// </summary>
4488         WINDOWS_NT_4_BACKOFFICE = 2113,
4489 
4490         /// <summary>
4491         /// Small Business Server 4.5
4492         /// </summary>
4493         WINDOWS_NT_4_SMS = 2114,
4494 
4495         /// <summary>
4496         /// Windows 2000 Professional
4497         /// </summary>
4498         WINDOWS_2000_PROFESSIONAL = 2200,
4499 
4500         /// <summary>
4501         /// Windows 2000 Server
4502         /// </summary>
4503         WINDOWS_2000_SERVER = 2211,
4504 
4505         /// <summary>
4506         /// Windows 2000 Advanced Server
4507         /// </summary>
4508         WINDOWS_2000_ADVANCED_SERVER = 2212,
4509 
4510         /// <summary>
4511         /// Windows 2000 Datacenter Server
4512         /// </summary>
4513         WINDOWS_2000_DATACENTER_SERVER = 2213,
4514 
4515         /// <summary>
4516         /// BackOffice Server 2000
4517         /// </summary>
4518         WINDOWS_2000_BACKOFFICE = 2214,
4519 
4520         /// <summary>
4521         /// Small Business Server 2000
4522         /// </summary>
4523         WINDOWS_2000_SBS = 2215,
4524 
4525         /// <summary>
4526         /// Windows XP Home Edition
4527         /// </summary>
4528         WINDOWS_XP_HOME = 2300,
4529 
4530         /// <summary>
4531         /// Windows XP Professional
4532         /// </summary>
4533         WINDOWS_XP_PROFESSIONAL = 2301,
4534 
4535         /// <summary>
4536         /// Windows Server 2003 Web Edition
4537         /// </summary>
4538         WINDOWS_2003_WEB = 2410,
4539 
4540         /// <summary>
4541         /// Windows Server 2003 Standard Edition
4542         /// </summary>
4543         WINDOWS_2003_STANDARD = 2411,
4544 
4545         /// <summary>
4546         /// Windows Server 2003 Enterprise Edition
4547         /// </summary>
4548         WINDOWS_2003_ENTERPRISE = 2412,
4549 
4550         /// <summary>
4551         /// Windows Server 2003 DataCenter Edition
4552         /// </summary>
4553         WINDOWS_2003_DATACENTER = 2413,
4554 
4555         /// <summary>
4556         /// BackOffice Server 2003
4557         /// </summary>
4558         WINDOWS_2003_BACKOFFICE = 2414,
4559 
4560         /// <summary>
4561         /// Small Business Server 2003
4562         /// </summary>
4563         WINDOWS_2003_SBS = 2415,
4564 
4565         /// <summary>
4566         /// Windows Vista
4567         /// </summary>
4568         WINDOWS_LONGHORN_PROFESSIONAL = 2500,
4569 
4570         /// <summary>
4571         /// Windows Server 2008
4572         /// </summary>
4573         WINDOWS_LONGHORN_SERVER = 2510,
4574 
4575         /// <summary>
4576         /// Windows 7
4577         /// </summary>
4578         WINDOWS_7 = 2600,
4579 
4580         /// <summary>
4581         /// Windows Server 2008 R2
4582         /// </summary>
4583         WINDOWS_SERVER_2008_R2 = 2610,
4584 
4585         /// <summary>
4586         /// Windows 8
4587         /// </summary>
4588         WINDOWS_8 = 2700,
4589 
4590         /// <summary>
4591         /// Windows Server 2012
4592         /// </summary>
4593         WINDOWS_SERVER_8 = 2710,
4594 
4595         /// <summary>
4596         /// Windows 8.1
4597         /// </summary>
4598         WINDOWS_81 = 2701,
4599 
4600         /// <summary>
4601         /// Windows Server 2012 R2
4602         /// </summary>
4603         WINDOWS_SERVER_81 = 2711,
4604 
4605         /// <summary>
4606         /// Windows 10
4607         /// </summary>
4608         WINDOWS_10 = 2702,
4609 
4610         /// <summary>
4611         /// Windows Server 10
4612         /// </summary>
4613         WINDOWS_SERVER_10 = 2712,
4614 
4615         /// <summary>
4616         /// Windows 11 or later
4617         /// </summary>
4618         WINDOWS_11 = 2800,
4619 
4620         /// <summary>
4621         /// Windows Server 11 or later
4622         /// </summary>
4623         WINDOWS_SERVER_11 = 2810,
4624 
4625         /// <summary>
4626         /// Unknown UNIX
4627         /// </summary>
4628         UNIX_UNKNOWN = 3000,
4629 
4630         /// <summary>
4631         /// Linux
4632         /// </summary>
4633         LINUX = 3100,
4634 
4635         /// <summary>
4636         /// Solaris
4637         /// </summary>
4638         SOLARIS = 3200,
4639 
4640         /// <summary>
4641         /// Cygwin
4642         /// </summary>
4643         CYGWIN = 3300,
4644 
4645         /// <summary>
4646         /// BSD
4647         /// </summary>
4648         BSD = 3400,
4649 
4650         /// <summary>
4651         /// MacOS X
4652         /// </summary>
4653         MACOS_X = 3500,
4654     }
4655 
4656     /// <summary>
4657     /// VPN Server Information
4658     /// </summary>
4659     public class VpnRpcServerInfo
4660     {
4661         /// <summary>
4662         /// Server product name
4663         /// </summary>
4664         public string ServerProductName_str;
4665 
4666         /// <summary>
4667         /// Server version string
4668         /// </summary>
4669         public string ServerVersionString_str;
4670 
4671         /// <summary>
4672         /// Server build information string
4673         /// </summary>
4674         public string ServerBuildInfoString_str;
4675 
4676         /// <summary>
4677         /// Server version integer value
4678         /// </summary>
4679         public uint ServerVerInt_u32;
4680 
4681         /// <summary>
4682         /// Server build number integer value
4683         /// </summary>
4684         public uint ServerBuildInt_u32;
4685 
4686         /// <summary>
4687         /// Server host name
4688         /// </summary>
4689         public string ServerHostName_str;
4690 
4691         /// <summary>
4692         /// Type of server
4693         /// </summary>
4694         public VpnRpcServerType ServerType_u32;
4695 
4696         /// <summary>
4697         /// Build date and time of the server
4698         /// </summary>
4699         public DateTime ServerBuildDate_dt;
4700 
4701         /// <summary>
4702         /// Family name
4703         /// </summary>
4704         public string ServerFamilyName_str;
4705 
4706         /// <summary>
4707         /// OS type
4708         /// </summary>
4709         public VpnRpcOsType OsType_u32;
4710 
4711         /// <summary>
4712         /// Service pack number
4713         /// </summary>
4714         public uint OsServicePack_u32;
4715 
4716         /// <summary>
4717         /// OS system name
4718         /// </summary>
4719         public string OsSystemName_str;
4720 
4721         /// <summary>
4722         /// OS product name
4723         /// </summary>
4724         public string OsProductName_str;
4725 
4726         /// <summary>
4727         /// OS vendor name
4728         /// </summary>
4729         public string OsVendorName_str;
4730 
4731         /// <summary>
4732         /// OS version
4733         /// </summary>
4734         public string OsVersion_str;
4735 
4736         /// <summary>
4737         /// Kernel name
4738         /// </summary>
4739         public string KernelName_str;
4740 
4741         /// <summary>
4742         /// Kernel version
4743         /// </summary>
4744         public string KernelVersion_str;
4745     }
4746 
4747     /// <summary>
4748     /// Server status
4749     /// </summary>
4750     public class VpnRpcServerStatus
4751     {
4752         /// <summary>
4753         /// Type of server
4754         /// </summary>
4755         public VpnRpcServerType ServerType_u32;
4756 
4757         /// <summary>
4758         /// Total number of TCP connections
4759         /// </summary>
4760         public uint NumTcpConnections_u32;
4761 
4762         /// <summary>
4763         /// Number of Local TCP connections
4764         /// </summary>
4765         public uint NumTcpConnectionsLocal_u32;
4766 
4767         /// <summary>
4768         /// Number of remote TCP connections
4769         /// </summary>
4770         public uint NumTcpConnectionsRemote_u32;
4771 
4772         /// <summary>
4773         /// Total number of HUBs
4774         /// </summary>
4775         public uint NumHubTotal_u32;
4776 
4777         /// <summary>
4778         /// Nymber of stand-alone HUB
4779         /// </summary>
4780         public uint NumHubStandalone_u32;
4781 
4782         /// <summary>
4783         /// Number of static HUBs
4784         /// </summary>
4785         public uint NumHubStatic_u32;
4786 
4787         /// <summary>
4788         /// Number of Dynamic HUBs
4789         /// </summary>
4790         public uint NumHubDynamic_u32;
4791 
4792         /// <summary>
4793         /// Total number of sessions
4794         /// </summary>
4795         public uint NumSessionsTotal_u32;
4796 
4797         /// <summary>
4798         /// Number of local VPN sessions
4799         /// </summary>
4800         public uint NumSessionsLocal_u32;
4801 
4802         /// <summary>
4803         /// The number of remote sessions
4804         /// </summary>
4805         public uint NumSessionsRemote_u32;
4806 
4807         /// <summary>
4808         /// Number of MAC table entries (total sum of all Virtual Hubs)
4809         /// </summary>
4810         public uint NumMacTables_u32;
4811 
4812         /// <summary>
4813         /// Number of IP table entries (total sum of all Virtual Hubs)
4814         /// </summary>
4815         public uint NumIpTables_u32;
4816 
4817         /// <summary>
4818         /// Number of users (total sum of all Virtual Hubs)
4819         /// </summary>
4820         public uint NumUsers_u32;
4821 
4822         /// <summary>
4823         /// Number of groups (total sum of all Virtual Hubs)
4824         /// </summary>
4825         public uint NumGroups_u32;
4826 
4827         /// <summary>
4828         /// Number of assigned bridge licenses (Useful to make a commercial version)
4829         /// </summary>
4830         public uint AssignedBridgeLicenses_u32;
4831 
4832         /// <summary>
4833         /// Number of assigned client licenses (Useful to make a commercial version)
4834         /// </summary>
4835         public uint AssignedClientLicenses_u32;
4836 
4837         /// <summary>
4838         /// Number of Assigned bridge license (cluster-wide), useful to make a commercial version
4839         /// </summary>
4840         public uint AssignedBridgeLicensesTotal_u32;
4841 
4842         /// <summary>
4843         /// Number of assigned client licenses (cluster-wide), useful to make a commercial version
4844         /// </summary>
4845         public uint AssignedClientLicensesTotal_u32;
4846 
4847         /// <summary>
4848         /// Number of broadcast packets (Recv)
4849         /// </summary>
4850         [JsonProperty("Recv.BroadcastBytes_u64")]
4851         public ulong Recv_BroadcastBytes_u64;
4852 
4853         /// <summary>
4854         /// Broadcast bytes (Recv)
4855         /// </summary>
4856         [JsonProperty("Recv.BroadcastCount_u64")]
4857         public ulong Recv_BroadcastCount_u64;
4858 
4859         /// <summary>
4860         /// Unicast count (Recv)
4861         /// </summary>
4862         [JsonProperty("Recv.UnicastBytes_u64")]
4863         public ulong Recv_UnicastBytes_u64;
4864 
4865         /// <summary>
4866         /// Unicast bytes (Recv)
4867         /// </summary>
4868         [JsonProperty("Recv.UnicastCount_u64")]
4869         public ulong Recv_UnicastCount_u64;
4870 
4871         /// <summary>
4872         /// Number of broadcast packets (Send)
4873         /// </summary>
4874         [JsonProperty("Send.BroadcastBytes_u64")]
4875         public ulong Send_BroadcastBytes_u64;
4876 
4877         /// <summary>
4878         /// Broadcast bytes (Send)
4879         /// </summary>
4880         [JsonProperty("Send.BroadcastCount_u64")]
4881         public ulong Send_BroadcastCount_u64;
4882 
4883         /// <summary>
4884         /// Unicast bytes (Send)
4885         /// </summary>
4886         [JsonProperty("Send.UnicastBytes_u64")]
4887         public ulong Send_UnicastBytes_u64;
4888 
4889         /// <summary>
4890         /// Unicast bytes (Send)
4891         /// </summary>
4892         [JsonProperty("Send.UnicastCount_u64")]
4893         public ulong Send_UnicastCount_u64;
4894 
4895         /// <summary>
4896         /// Current time
4897         /// </summary>
4898         public DateTime CurrentTime_dt;
4899 
4900         /// <summary>
4901         /// 64 bit High-Precision Logical System Clock
4902         /// </summary>
4903         public ulong CurrentTick_u64;
4904 
4905         /// <summary>
4906         /// VPN Server Start-up time
4907         /// </summary>
4908         public DateTime StartTime_dt;
4909 
4910         /// <summary>
4911         /// Memory information: Total Memory
4912         /// </summary>
4913         public ulong TotalMemory_u64;
4914 
4915         /// <summary>
4916         /// Memory information: Used Memory
4917         /// </summary>
4918         public ulong UsedMemory_u64;
4919 
4920         /// <summary>
4921         /// Memory information: Free Memory
4922         /// </summary>
4923         public ulong FreeMemory_u64;
4924 
4925         /// <summary>
4926         /// Memory information: Total Phys
4927         /// </summary>
4928         public ulong TotalPhys_u64;
4929 
4930         /// <summary>
4931         /// Memory information: Used Phys
4932         /// </summary>
4933         public ulong UsedPhys_u64;
4934 
4935         /// <summary>
4936         /// Memory information: Free Phys
4937         /// </summary>
4938         public ulong FreePhys_u64;
4939     }
4940 
4941     /// <summary>
4942     /// VPN Session status
4943     /// </summary>
4944     public class VpnRpcSessionStatus
4945     {
4946         /// <summary>
4947         /// The Virtual Hub name
4948         /// </summary>
4949         public string HubName_str;
4950 
4951         /// <summary>
4952         /// VPN session name
4953         /// </summary>
4954         public string Name_str;
4955 
4956         /// <summary>
4957         /// User name
4958         /// </summary>
4959         public string Username_str;
4960 
4961         /// <summary>
4962         /// Real user name which was used for the authentication
4963         /// </summary>
4964         public string RealUsername_str;
4965 
4966         /// <summary>
4967         /// Group name
4968         /// </summary>
4969         public string GroupName_str;
4970 
4971         /// <summary>
4972         /// Is Cascade Session
4973         /// </summary>
4974         public bool LinkMode_bool;
4975 
4976         /// <summary>
4977         /// Client IP address
4978         /// </summary>
4979         public string Client_Ip_Address_ip;
4980 
4981         /// <summary>
4982         /// Client host name
4983         /// </summary>
4984         [JsonProperty("SessionStatus_ClientHostName_str")]
4985         public string ClientHostName_str;
4986 
4987         /// <summary>
4988         /// Operation flag
4989         /// </summary>
4990         public bool Active_bool;
4991 
4992         /// <summary>
4993         /// Connected flag
4994         /// </summary>
4995         public bool Connected_bool;
4996 
4997         /// <summary>
4998         /// State of the client session
4999         /// </summary>
5000         public VpnRpcClientSessionStatus SessionStatus_u32;
5001 
5002         /// <summary>
5003         /// Server name
5004         /// </summary>
5005         public string ServerName_str;
5006 
5007         /// <summary>
5008         /// Port number of the server
5009         /// </summary>
5010         public uint ServerPort_u32;
5011 
5012         /// <summary>
5013         /// Server product name
5014         /// </summary>
5015         public string ServerProductName_str;
5016 
5017         /// <summary>
5018         /// Server product version
5019         /// </summary>
5020         public uint ServerProductVer_u32;
5021 
5022         /// <summary>
5023         /// Server product build number
5024         /// </summary>
5025         public uint ServerProductBuild_u32;
5026 
5027         /// <summary>
5028         /// Connection start time
5029         /// </summary>
5030         public DateTime StartTime_dt;
5031 
5032         /// <summary>
5033         /// Connection completion time of the first connection
5034         /// </summary>
5035         public DateTime FirstConnectionEstablisiedTime_dt;
5036 
5037         /// <summary>
5038         /// Connection completion time of this connection
5039         /// </summary>
5040         public DateTime CurrentConnectionEstablishTime_dt;
5041 
5042         /// <summary>
5043         /// Number of connections have been established so far
5044         /// </summary>
5045         public uint NumConnectionsEatablished_u32;
5046 
5047         /// <summary>
5048         /// Half-connection
5049         /// </summary>
5050         public bool HalfConnection_bool;
5051 
5052         /// <summary>
5053         /// VoIP / QoS
5054         /// </summary>
5055         public bool QoS_bool;
5056 
5057         /// <summary>
5058         /// Maximum number of the underlying TCP connections
5059         /// </summary>
5060         public uint MaxTcpConnections_u32;
5061 
5062         /// <summary>
5063         /// Number of current underlying TCP connections
5064         /// </summary>
5065         public uint NumTcpConnections_u32;
5066 
5067         /// <summary>
5068         /// Number of inbound underlying connections
5069         /// </summary>
5070         public uint NumTcpConnectionsUpload_u32;
5071 
5072         /// <summary>
5073         /// Number of outbound underlying connections
5074         /// </summary>
5075         public uint NumTcpConnectionsDownload_u32;
5076 
5077         /// <summary>
5078         /// Use of encryption
5079         /// </summary>
5080         public bool UseEncrypt_bool;
5081 
5082         /// <summary>
5083         /// Cipher algorithm name
5084         /// </summary>
5085         public string CipherName_str;
5086 
5087         /// <summary>
5088         /// Use of compression
5089         /// </summary>
5090         public bool UseCompress_bool;
5091 
5092         /// <summary>
5093         /// Is R-UDP session
5094         /// </summary>
5095         public bool IsRUDPSession_bool;
5096 
5097         /// <summary>
5098         /// Physical underlying communication protocol
5099         /// </summary>
5100         public string UnderlayProtocol_str;
5101 
5102         /// <summary>
5103         /// The UDP acceleration is enabled
5104         /// </summary>
5105         public bool IsUdpAccelerationEnabled_bool;
5106 
5107         /// <summary>
5108         /// Using the UDP acceleration function
5109         /// </summary>
5110         public bool IsUsingUdpAcceleration_bool;
5111 
5112         /// <summary>
5113         /// VPN session name
5114         /// </summary>
5115         public string SessionName_str;
5116 
5117         /// <summary>
5118         /// Connection name
5119         /// </summary>
5120         public string ConnectionName_str;
5121 
5122         /// <summary>
5123         /// Session key
5124         /// </summary>
5125         public byte[] SessionKey_bin;
5126 
5127         /// <summary>
5128         /// Total transmitted data size
5129         /// </summary>
5130         public ulong TotalSendSize_u64;
5131 
5132         /// <summary>
5133         /// Total received data size
5134         /// </summary>
5135         public ulong TotalRecvSize_u64;
5136 
5137         /// <summary>
5138         /// Total transmitted data size (no compression)
5139         /// </summary>
5140         public ulong TotalSendSizeReal_u64;
5141 
5142         /// <summary>
5143         /// Total received data size (no compression)
5144         /// </summary>
5145         public ulong TotalRecvSizeReal_u64;
5146 
5147         /// <summary>
5148         /// Is Bridge Mode
5149         /// </summary>
5150         public bool IsBridgeMode_bool;
5151 
5152         /// <summary>
5153         /// Is Monitor mode
5154         /// </summary>
5155         public bool IsMonitorMode_bool;
5156 
5157         /// <summary>
5158         /// VLAN ID
5159         /// </summary>
5160         public uint VLanId_u32;
5161 
5162         /// <summary>
5163         /// Client product name
5164         /// </summary>
5165         public string ClientProductName_str;
5166 
5167         /// <summary>
5168         /// Client version
5169         /// </summary>
5170         public uint ClientProductVer_u32;
5171 
5172         /// <summary>
5173         /// Client build number
5174         /// </summary>
5175         public uint ClientProductBuild_u32;
5176 
5177         /// <summary>
5178         /// Client OS name
5179         /// </summary>
5180         public string ClientOsName_str;
5181 
5182         /// <summary>
5183         /// Client OS version
5184         /// </summary>
5185         public string ClientOsVer_str;
5186 
5187         /// <summary>
5188         /// Client OS Product ID
5189         /// </summary>
5190         public string ClientOsProductId_str;
5191 
5192         /// <summary>
5193         /// Client host name
5194         /// </summary>
5195         public string ClientHostname_str;
5196 
5197         /// <summary>
5198         /// Unique ID
5199         /// </summary>
5200         public byte[] UniqueId_bin;
5201     }
5202 
5203     /// <summary>
5204     /// Set the special listener
5205     /// </summary>
5206     public class VpnRpcSpecialListener
5207     {
5208         /// <summary>
5209         /// The flag to activate the VPN over ICMP server function
5210         /// </summary>
5211         public bool VpnOverIcmpListener_bool;
5212 
5213         /// <summary>
5214         /// The flag to activate the VPN over DNS function
5215         /// </summary>
5216         public bool VpnOverDnsListener_bool;
5217     }
5218 
5219     /// <summary>
5220     /// Syslog configuration
5221     /// </summary>
5222     public enum VpnSyslogSaveType
5223     {
5224         /// <summary>
5225         /// Do not use syslog
5226         /// </summary>
5227         None = 0,
5228 
5229         /// <summary>
5230         /// Only server log
5231         /// </summary>
5232         ServerLog = 1,
5233 
5234         /// <summary>
5235         /// Server and Virtual HUB security log
5236         /// </summary>
5237         ServerAndHubSecurityLog = 2,
5238 
5239         /// <summary>
5240         /// Server, Virtual HUB security, and packet log
5241         /// </summary>
5242         ServerAndHubAllLog = 3,
5243     }
5244 
5245     /// <summary>
5246     /// Syslog configuration
5247     /// </summary>
5248     public class VpnSyslogSetting
5249     {
5250         /// <summary>
5251         /// The behavior of the syslog function
5252         /// </summary>
5253         public VpnSyslogSaveType SaveType_u32;
5254 
5255         /// <summary>
5256         /// Specify the host name or IP address of the syslog server
5257         /// </summary>
5258         public string Hostname_str;
5259 
5260         /// <summary>
5261         /// Specify the port number of the syslog server
5262         /// </summary>
5263         public uint Port_u32;
5264     }
5265 
5266     /// <summary>
5267     /// VPN Gate Server Config
5268     /// </summary>
5269     public class VpnVgsConfig
5270     {
5271         /// <summary>
5272         /// Active flag
5273         /// </summary>
5274         public bool IsEnabled_bool;
5275 
5276         /// <summary>
5277         /// Message
5278         /// </summary>
5279         public string Message_utf;
5280 
5281         /// <summary>
5282         /// Owner name
5283         /// </summary>
5284         public string Owner_utf;
5285 
5286         /// <summary>
5287         /// Abuse email
5288         /// </summary>
5289         public string Abuse_utf;
5290 
5291         /// <summary>
5292         /// Log save flag
5293         /// </summary>
5294         public bool NoLog_bool;
5295 
5296         /// <summary>
5297         /// Save log permanently
5298         /// </summary>
5299         public bool LogPermanent_bool;
5300 
5301         /// <summary>
5302         /// Enable the L2TP VPN function
5303         /// </summary>
5304         public bool EnableL2TP_bool;
5305     }
5306 
5307     /// <summary>
5308     /// Read a Log file
5309     /// </summary>
5310     public class VpnRpcReadLogFile
5311     {
5312         /// <summary>
5313         /// Server name
5314         /// </summary>
5315         public string ServerName_str;
5316 
5317         /// <summary>
5318         /// File Path
5319         /// </summary>
5320         public string FilePath_str;
5321 
5322         /// <summary>
5323         /// Offset to download. You have to call the ReadLogFile API multiple times to download the entire log file with requesting a part of the file by specifying the Offset_u32 field.
5324         /// </summary>
5325         public uint Offset_u32;
5326 
5327         /// <summary>
5328         /// Received buffer
5329         /// </summary>
5330         public byte[] Buffer_bin;
5331     }
5332 
5333     /// <summary>
5334     /// Rename link
5335     /// </summary>
5336     public class VpnRpcRenameLink
5337     {
5338         /// <summary>
5339         /// The Virtual Hub name
5340         /// </summary>
5341         public string HubName_str;
5342 
5343         /// <summary>
5344         /// The old name of the cascade connection
5345         /// </summary>
5346         public string OldAccountName_utf;
5347 
5348         /// <summary>
5349         /// The new name of the cascade connection
5350         /// </summary>
5351         public string NewAccountName_utf;
5352     }
5353 
5354     /// <summary>
5355     /// Online or offline the HUB
5356     /// </summary>
5357     public class VpnRpcSetHubOnline
5358     {
5359         /// <summary>
5360         /// The Virtual Hub name
5361         /// </summary>
5362         public string HubName_str;
5363 
5364         /// <summary>
5365         /// Online / offline flag
5366         /// </summary>
5367         public bool Online_bool;
5368     }
5369 
5370     /// <summary>
5371     /// Set Password
5372     /// </summary>
5373     public class VpnRpcSetPassword
5374     {
5375         /// <summary>
5376         /// The plaintext password
5377         /// </summary>
5378         public string PlainTextPassword_str;
5379     }
5380 
5381 }
5382