| AnyConnect Secure Mobility Client 5.1.16.194

api.h
Go to the documentation of this file.
1 /**************************************************************************
2 * Copyright (c) 2008, 2022-2023, 2025 Cisco Systems, Inc.
3 * All Rights Reserved. Cisco Highly Confidential.
4 ***************************************************************************
5 *
6 * File: api.h
7 * Date: 01/2008
8 *
9 ***************************************************************************
10 * VPN GUI API module interface types
11 ***************************************************************************/
12 #ifndef _APISTDHEADER_
13 #define _APISTDHEADER_
14
15 /**
16 * @file
17 * This file contains some basic compiler definitions as well as common enums.
18 */
19
20 //Not compatible with MIDL
21 #if !defined(__midl)
22 #ifdef _WIN32
23 #pragma warning(disable:4251 4786)
24
25 #ifndef UNICODE
26 #define UNICODE
27 #endif // UNICODE
28
29 #ifndef _UNICODE
30 #define _UNICODE
31 #endif // _UNICODE
32
33 #ifndef tstring
34 /** std::wstring */
35 #define tstring std::wstring /**< my wstring description */
36 #endif // tstring
37
38 #else // non-windows
39
40 #ifndef tstring
41 #define tstring std::string
42 #endif // tstring
43
44 #endif // _WIN32
45
46 #ifdef _UNICODE
47 #define tostream std::wostream
48 #else
49 #define tostream std::ostream
50 #endif /* UNICODE */
51
52
53 //used when including implementation files directly in an EXE.
54 #ifdef _NOEXPORTDLL
55 #define VPN_VPNAPI
56 #else
57 #ifdef _WIN32
58 #ifdef VPN_APIEXPORTS //api
59 #define VPN_VPNAPI __declspec(dllexport)
60 #else
61 #define VPN_VPNAPI __declspec(dllimport)
62 #endif
63 #else
64 #ifdef VPN_APIEXPORTS
65 #define VPN_VPNAPI __attribute__((visibility("default")))
66 #else
67 #define VPN_VPNAPI
68 #endif
69 #endif //_WIN32
70 #endif //NOEXPORTDLL
71
72 #ifndef OUT
73 #define OUT
74 #endif
75
76 #ifndef IN
77 #define IN
78 #endif
79
80 #ifdef __cplusplus //only include if C++ is being used,
81 //C code also includes api.h for COM proxy of enumerators.
82 #include <string>
83 #include <map>
84 #include <list>
85
86 typedef std::map<tstring, tstring> ApiStringMap;
87 typedef std::map<tstring, std::list<tstring> > ApiStringListMap;
88
89 #endif //__cplusplus
90 #endif //#if !defined(__midl)
91
92
93 /***** PUT ONLY SHARED ENUMS EXPOSED TO USERS OF API FROM THIS POINT UNTIL END *****\
94 ********* make sure to add the [v1_enum] inside a __midl define to new enums ********
95 \******************** This is also compiled with IDL compiler **********************/
96
97 #include "GlobalEnums.h"
98 /**
99 * MessageType
100 * presents a level of severity associated with messages that are
101 * sent to the API. The severity can be useful for deciding how a message is
102 * to be shown. A UI might decide based on type to show a message as
103 * a modal dialog versus a message written to the status area for an existing UI.
104 */
105 #if defined(__midl)
106 [v1_enum] /*serialize as 32 bits*/
107 #endif
108 enum MessageType
109 {
110 MsgType_Error, /**< Issue usually requiring user to acknowledge */
111 MsgType_Alert, /**< Warning message that must be shown to user. */
112 MsgType_Warn, /**< Less severe, not required to be shown to user */
113 MsgType_Info, /**< General message providing status, progress, etc. */
114 MsgType_Status, /**< Can be used to indicate unexpected tunnel status change. */
115 MsgType_UrlError, /**< Error message that provides additional information by opening browser. */
116 MsgType_Announcement, /**< Informational message that must be shown to the user.
117 Announcements are currently only supported on desktop platforms. */
118 MsgType_Ephemeral_Alert,/**< Warning message that must be shown to the user, but is closed by
119 the occurrence of an error, announcement, alert, or critical message.
120 Ephemeral Alerts are currently only supported on desktop platforms */
121 MsgType_Critical, /**< Error message that MUST BE POPPED UP to the user, even if operating in
122 ErrorSuppressed mode. */
123 };
124
125
126 /**
127 * Identifies the type of token that was used successfully when SDI
128 * Authentication is in use.
129 */
130 #if defined(__midl)
131 [v1_enum] /*serialize as 32 bits*/
132 #endif
133 enum SDITokenType
134 {
135 SDITT_NONE,
136 SDITT_HARDWARE,
137 SDITT_SOFTWARE
138 };
139
140 /**
141 * Provides the current state of the VPN tunnel.
142 */
143 #if defined(__midl)
144 [v1_enum] /*serialize as 32 bits*/
145 #endif
146 enum VPNState
147 {
148 CONNECTED = STATE_CONNECTED, /**< VPN is active */
149 DISCONNECTED = STATE_DISCONNECTED, /**< VPN is inactive */
150 CONNECTING = STATE_CONNECTING, /**< VPN is being established */
151 DISCONNECTING = STATE_DISCONNECTING, /**< VPN is being terminated */
152 RECONNECTING = STATE_RECONNECTING, /**< VPN is being re-connected. This state
153 can occur due to network or other
154 temporary problems. The state
155 indicates that the VPN is temporarily
156 unavailable and indicates the
157 connection is being re-established. */
158 PAUSING = STATE_PAUSING, /**< VPN is being paused. */
159 PAUSED = STATE_PAUSED, /**< VPN is paused. */
160 SSOPOLLING = STATE_SSOPOLLING, /**< API is doing auth-poll, VPN is disconnected. */
161 UNKNOWN = ~0
162 };
163
164 /**
165 * Provides the current sub-state of the VPN tunnel.
166 */
167 #if defined(__midl)
168 [v1_enum] /*serialize as 32 bits*/
169 #endif
170 enum VPNSubState
171 {
172 VPNSS_NORMAL = VCSS_NORMAL,
173 VPNSS_INDEFINITE_DELAY = VCSS_INDEFINITE_DELAY,
174 VPNSS_SESSION_EXPIRING = VCSS_SESSION_EXPIRING,
175 VPNSS_MT_DISCONNECTED_DISABLED = VCSS_MT_DISCONNECTED_DISABLED,
176 VPNSS_MT_DISCONNECTED_TRUSTED_NW = VCSS_MT_DISCONNECTED_TRUSTED_NW,
177 VPNSS_MT_DISCONNECTED_USER_TUNNEL_ACTIVE= VCSS_MT_DISCONNECTED_USER_TUNNEL_ACTIVE,
178 VPNSS_MT_DISCONNECTED_LAUNCH_FAILED = VCSS_MT_DISCONNECTED_LAUNCH_FAILED,
179 VPNSS_MT_DISCONNECTED_CONNECT_FAILED = VCSS_MT_DISCONNECTED_CONNECT_FAILED,
180 VPNSS_MT_DISCONNECTED_BAD_VPN_CONFIG = VCSS_MT_DISCONNECTED_BAD_VPN_CONFIG,
181 VPNSS_MT_DISCONNECTED_SW_UP_PENDING = VCSS_MT_DISCONNECTED_SW_UP_PENDING,
182 VPNSS_MTU_ADJUSTMENT_PENDING = VCSS_MTU_ADJUSTMENT_PENDING
183 };
184
185 /**
186 * Provides a disconnect reason to terminate the VPN tunnel.
187 */
188 enum VPNDisconnectReason
189 {
190 UserRequestedDisconnect,
191 ApplicationTermination,
192 };
193
194 /**
195 * WMHint
196 * provides a hint for the GUI to either minimize or un-minimize.
197 */
198 #if defined(__midl)
199 [v1_enum] /*serialize as 32 bits*/
200 #endif
201 enum WMHint
202 {
203 MINIMIZE, /**< hint to minimize GUI */
204 OPEN, /**< hint to un-minimize GUI */
205 QUIT, /**< hint that GUI should close. @see WMHintReason */
206 REFRESHHOSTNAMES,/**< hint to refresh the list of secure gateways */
207 REFRESHPREFS, /**< hint to refresh the preferences */
208 SHOWCONNECTING, /**< hint to display "connecting" status */
209 CLOSECREDENTIALPOPUP, /**< hint to close the credentials popup */
210 };
211
212
213 /**
214 * WMHintReason
215 * provides a reason indicator for the #WMHint
216 */
217 #if defined(__midl)
218 [v1_enum] /*serialize as 32 bits*/
219 #endif
220 enum WMHintReason
221 {
222 SECONDGUISTART, /**< Indicates a second GUI has been launched. This
223 indicator is used to suggest that the GUI
224 already running be OPENed and that the first one
225 should exit. */
226 PROXYREQUEST, /**< Proxy credential request can be for web-launch or
227 standalone-initiated connections. */
228 SERVICEFAILURE, /**< This tag is used when the VPN service
229 is no longer available. */
230 DISCONNECT, /**< Any disconnect notices should be seen by the user. */
231 SERVICESTOPPED, /**< This tag will be used in cases where the VPN service
232 has been stopped. */
233 CONNECT, /**< Tag indicating an action to be taken due to connect,
234 for example a request to minimize the UI. */
235 REASONUNKNOWN /**< */
236 };
237
238 /**
239 * provides an indication of the type of credential data being requested.
240 */
241 #if defined(__midl)
242 [v1_enum] /*serialize as 32 bits*/
243 #endif
244 enum ConnectPromptType
245 {
246 CERTIFICATE, /**< Indicates a certificate-only type of connection and
247 would not normally be sent to client unless a
248 post-authentication banner is to be displayed. */
249 CREDENTIALS, /**< Indicates that the user is to be prompted for authentication
250 credentials */
251 PROXY, /**< Indicates that the user is to be prompted for
252 proxy-authentication credentials */
253 MANUAL_PKCS12_IMPORT, /**< Indicates that the user is to be prompted for passwords related
254 to PKCS12 import*/
255 STATUS, /**< Indicates that status messages are to be displayed to
256 the user*/
257 SINGLESIGNON, /**< Indicates an embedded browser based single sign-on authentication method is requested. */
258 SINGLELOGOUT, /**< Indicates an embedded browser based single sign-on authentication logout is requested. */
259 LEGACY_SINGLESIGNON, /**< (deprecated) Indicates a browser based single sign-on authentication method is requested. */
260 };
261
262
263 /**
264 * Indicates the prompt or credential type.
265 */
266 #if defined(__midl)
267 [v1_enum] /*serialize as 32 bits*/
268 #endif
269 enum PromptType { Prompt_Input, /**< label and value. */
270 Prompt_Password, /**< label and value, indicates user
271 response should be masked. */
272 Prompt_Banner, /**< value (the banner) with no label set. */
273 Prompt_Combo, /**< list with choices options. */
274 Prompt_Header, /**< label intended as header and with
275 value. */
276 Prompt_Hidden, /**< hidden value, should be ignored and
277 left unchanged in response. */
278 Prompt_CheckBox, /**< label and value (contrained to true or false) */
279 Prompt_SSO /**< single sign-on authentication token prompt */
280 };
281
282 #if defined(__midl)
283 [v1_enum] /*serialize as 32 bits*/
284 #endif
285
286 /*
287 * ***************** !!! ATTENTION !!! ***********************************
288 * *
289 * * When updating this preference enum, you must ensure that the enum in
290 * * vpn/Api/jni/java/Preference.java is also updated.
291 * *
292 * ***************** !!! ATTENTION !!! ***********************************
293 */
294 enum PreferenceId
295 {
296 ServiceDisable, /**< This preference disable the VPN service.
297 If more than one profile exists and any one
298 profile has VPN enabled, then it will be
299 enabled. False is the default. */
300 CertificateStoreOverride,/**< This preference will trigger an alternate
301 authentication sequence in the API. The
302 preference is only settable by an
303 administrator. */
304 CertificateStore, /**< This preference indicates which Windows certificate
305 store AnyConnect should look in for client certificates.
306 The options are All, Machine and User with a default of All.
307 The preference is only settable by an administrator. */
308 CertificateStoreMac, /**< This preference indicates which macOS keychain
309 AnyConnect should look in for client certificates.
310 The options are All, System and Login with a default of All.
311 The preference is only settable by an administrator. */
312 CertificateStoreLinux, /**< This preference indicates which Linux certificate
313 store AnyConnect should look in for client certificates.
314 The options are All, Machine and User with a default of All.
315 The preference is only settable by an administrator. */
316 ShowPreConnectMessage, /**< The ShowPreConnectMessage preference gives the
317 administrator the ability to display an AnyConnect
318 startup banner message. The message will appear
319 only once per AnyConnect program start. The
320 preference is only settable by an
321 administrator. */
322 AutoConnectOnStart, /**< This preference allows the user to select
323 whether to establish a connection automatically
324 on startup or not. */
325 MinimizeOnConnect, /**< This preference allows the user to select if
326 the GUI should minimize when the connection is
327 established */
328 LocalLanAccess, /**< This preference will provide a mechanism where
329 the user can disable access to their Local LAN. */
330 DisableCaptivePortalDetection, /**<This preference will provide a mechanism where
331 the user can disable captive portal detection.*/
332 AutoReconnect, /**< First control of the reconnect behavior. If the
333 client becomes disconnected for any reason, a
334 reconnect attempt is made. */
335 AutoReconnectBehavior, /**< Second control of the reconnect behavior. When
336 coming out of suspend/hibernate/standby mode.
337 Options are disconnect on suspend and reconnect
338 after suspend. */
339 SuspendOnConnectedStandby, /**< This setting allows to control whether the VPN tunnel
340 is suspended when the system enters the Connected Standby
341 mode. It applies only to Windows 8 and above. */
342 UseStartBeforeLogon, /**< Deprecated. Start Before Logon is no longer controlled
343 via profile preference and is enabled by default. */
344 AutoUpdate, /**< Once the Downloader has loaded the profile, it
345 can check the AutoUpdate preference to see if
346 updates are either disabled or enabled */
347 RSASecurIDIntegration, /**< This preference will enable the administrator
348 and possibly end user to select the preferred
349 method of managing their SDI PIN and PASSCODE
350 interactions. Options are Automatic (default),
351 SoftwareTokens and HardwareTokens. */
352 WindowsLogonEnforcement,/**< This preference allows an administrator to
353 control if more than one user may be logged into
354 the client PC during the VPN connection (Windows
355 only). */
356 WindowsVPNEstablishment,/**< This preference allows an administrator to
357 control whether or not remote users may initiate
358 a VPN connection (Windows only). */
359 LinuxLogonEnforcement, /**< This preference allows an administrator to
360 control if more than one user may be logged into
361 the client PC during the VPN connection (Linux
362 only). */
363 LinuxVPNEstablishment, /**< This preference allows an administrator to
364 control whether or not remote users may initiate
365 a VPN connection (Linux only). */
366 ProxySettings, /**< This preference allows an administrator to
367 control how user's proxy setups are handled.*/
368 AllowLocalProxyConnections, /**< This preference allows the administrator to control
369 whether to allow establishing a connection through
370 a local proxy. */
371 PPPExclusion, /**< This preference allows an administrator to control
372 the policy used to exclude routes to
373 PPP servers when connecting over L2TP or PPTP.
374 Options are Automatic (default), Disable,
375 and Override. */
376 PPPExclusionServerIP, /**< When PPPExclusion is set to Manual,
377 the value of this preference allows an
378 end user to specify the address of a
379 PPP server that should be excluded
380 from tunnel traffic. */
381 AutomaticVPNPolicy, /**< This preference allows an administrator to
382 define a policy to automatically manage when a
383 VPN connection should be started or stopped. */
384 TrustedNetworkPolicy, /**< This preference allows an administrator to
385 define a policy for users in trusted networks.
386 The options are: Disconnect or DoNothing. */
387 UntrustedNetworkPolicy, /**< This preference allows an administrator to
388 define a policy for users in untrusted networks.
389 The options are: Connect or DoNothing. */
390 BypassConnectUponSessionTimeout, /**< This preference allows an administrator
391 the ability to instruct the client to bypass the
392 automatic connection retry after a VPN session timeout. */
393 TrustedDNSDomains, /**< This preference defines a list of comma
394 separated DNS suffixes that a network interface
395 in a trusted network might have. */
396 TrustedDNSServers, /**< This preference defines a list of comma
397 separated DNS servers that a network interface
398 in a trusted network might have. */
399 TrustedHttpsServerList, /**< This preference defines a list of comma separated
400 https servers reachable only via a trusted network.*/
401 DisableUntrustedInterfaces, /**< This preference disables interface without trusted
402 server connectivity while in trusted network
403 when there are multiple network interfaces. */
404 AlwaysOn, /**< This preference governs VPN reestablishment after
405 interruptions */
406 ConnectFailurePolicy, /**< This preference gives the network administrator
407 the ability to dictate the network access allowed
408 by the client endpoint device following a VPN
409 connection establishment failure. It is a component
410 of Always On */
411 AllowCaptivePortalRemediation, /**< This preference gives the network administrator
412 the ability to dictate the network access
413 allowed by the client endpoint device following
414 a VPN connection establishment failure it is a
415 component of Always On */
416 CaptivePortalRemediationTimeout, /**< This preference allows the network administrator
417 the ability to impose a time limit for captive portal
418 remediation when the ConnectFailurePolicy value is Closed
419 It is a component of Always On */
420 ApplyLastVPNLocalResourceRules, /**< This preference gives the network administrator
421 the ability to allow split routes and firewall rules
422 to be applied following a VPN connection establishment
423 failure when the ConnectFailurePolicy value is Closed
424 It is a component of Always On */
425 AllowVPNDisconnect, /**< During Always On, this specifies that the user is allowed to
426 disconnect the VPN session. */
427 SuppressConnectionRetries, /**< During Always On, this preference gives the network administrator
428 the ability to suppress the VPN connection retry attempts */
429 AllowedHosts, /**< During Always On, user has access to the specified hosts
430 when VPN is disconnected. */
431 EnableScripting, /**< This preference allows an administrator to
432 enable scripting (on connect or on
433 disconnect). */
434 TerminateScriptOnNextEvent, /**< This preference dictates whether or not
435 AnyConnect will terminate a running script
436 process if a transition to another
437 scriptable event occurs. */
438 EnablePostSBLOnConnectScript, /**< This preference is used to control whether
439 or not the OnConnect script will be launched
440 from the desktop GUI when a tunnel has been
441 established via SBL. */
442 AutomaticCertSelection, /**< This preference dictates whether or not to disable
443 the default automatic certificate selection for user
444 certificates. If disabled, a certificate selection dialog is
445 displayed. This only applies if the GUI is enabled
446 and not SBL. This only applies to Windows (not WinMobile). */
447 RetainVpnOnLogoff, /**< First control of the logoff behavior. This preference allows
448 an administrator to control if the VPN is terminated or retained
449 after user logs off.*/
450 UserEnforcement, /**< Second control of the logoff behavior. When the VPN connection has
451 been retained after user logged off. Controls what user can log in
452 and keep the VPN connection. Options are same user only and any user. */
453 DeviceLockRequired, /**< This preference indicates whether or not
454 a Windows Mobile device must be configured
455 with a password or PIN prior to establishing
456 a VPN connection. This configuration is
457 only valid on Windows Mobile devices that
458 use the Microsoft Default Local
459 Authentication Provider (LAP). */
460 DeviceLockMaximumTimeoutMinutes, /**< When set to a non-negative number,
461 this preference specifies the maximum
462 number of minutes a device can be
463 inactive before device lock takes
464 into effect. (WM5/WM5AKU2+) */
465 DeviceLockMinimumPasswordLength, /**< When set to a non-negative number,
466 this preference specifies that any
467 PIN/password used for device lock
468 must be equal to or longer than
469 the specified value, in characters.
470 This setting must be pushed down to
471 the mobile device by syncing with
472 an Exchange server before it can be
473 enforced. (WM5AKU2+) */
474 DeviceLockPasswordComplexity, /**< This preference checks whether or
475 not the password belongs to one of
476 three subtypes: alpha, pin, strong */
477 EnableAutomaticServerSelection, /**< Automatic server selection will
478 automatically select the optimal
479 secure gateway for the endpoint */
480 AutoServerSelectionImprovement, /**< During a reconnection attempt after
481 a system resume, this setting
482 specifies the minimum estimated
483 performance improvement required to
484 justify transitioning a user to a new server
485 This value represents percentage in 0..100 */
486 AutoServerSelectionSuspendTime, /**< During a reconnection attempt after
487 a system resume, this specifies the
488 minimum time a user must have been
489 suspended in order to justify a new
490 server selection calculation. Unit is hours */
491 AuthenticationTimeout, /**< Time, in seconds, that the client waits
492 for authentication to be completed.*/
493 SafeWordSofTokenIntegration, /**< This preference will enable the administrator and possibly
494 the end user to enable SafeWord SofToken integration.
495 Options are Enabled (true) and Disabled (false - default). */
496 AllowIPsecOverSSL, /**< if 'true' then tunneling of IPSEC over SSL
497 is made possible with help from the ASA.
498 */
499 ClearSmartcardPin, /**< This preference controls whether the smartcard pin
500 will be cleared on a successful connection*/
501 IPProtocolSupport, /**< This preference controls which protocol(s) will be
502 allowed for the connection*/
503 CaptivePortalRemediationBrowserFailover, /**< This preference is applicable to enhanced captive portal
504 remediation and specifies whether the user is allowed to
505 opt for an external browser for remediation, as opposed to
506 the AnyConnect browser. */
507 AllowManualHostInput, /**< This preference specifies whether the user
508 is allowed to type a new hostname in the VPN
509 edit box. */
510 BlockUntrustedServers, /**< This preference specifies whether the user wants
511 to allow for connections to secure gateways with
512 certificate errors. */
513 PublicProxyServerAddress, /**< This preference specifies the public proxy server
514 address to be used. This number is in the format
515 ServerAddr:ServerPort (ex. 101.89.85.444:8080)
516 or just the FQDN. */
517 CertificatePinning, /**< This preference specifies whether Certificate Pinning
518 check should be performed during server certificate
519 verification. */
520 UnknownPreference
521 };
522
523
524 /**
525 * Indicates the scope of the preferences contained in a PreferenceInfo object
526 */
527 #if defined(__midl)
528 [v1_enum] /*serialize as 32 bits*/
529 #endif
530 enum PreferenceScope
531 {
532 User, /**< Indicates that the preferences were set by a user */
533 Global, /**< Indicates that the preferences are global */
534 UserAndGlobal /**< Indicates that we have both user and global preferences */
535 };
536
537 /**
538 * Indicates the client mode of operation. Unlike tunneling mode or other
539 * mutually exclusive modes, client operating modes are independent settings,
540 * several of which can be turned on simultaneously.
541 */
542 #if defined(__midl)
543 [v1_enum] /*serialize as 32 bits*/
544 #endif
545 enum OperatingMode
546 {
547 FIPS = (1 << 0), /**< Indicates that the client is
548 running in FIPS mode. */
549 StartBeforeLogon = (1 << 1), /**< Indicates that the client is
550 running in Start Before Login
551 mode. */
552 GUI = (1 << 2), /**< Indicates that the client is
553 a GUI client. */
554 TrustedNetworkDetection = (1 << 3), /**< Indicates that a Trusted Network
555 Detection policy is enabled for
556 the client. */
557 AlwaysOnVpn = (1 << 4), /**< Indicates that the Always On
558 policy is enabled for the client. */
559 NetworkIssue = (1 << 5), /**< For user notifications only.
560 Indication by API to the UI that
561 there is a network condition. */
562 Quarantined = (1 << 6), /**< Indicates that the VPN session is being
563 Quarantined by the secure gateway. */
564 AutomaticHeadendSelection= (1 << 7), /**< Indicates that Automatic Headend
565 is enabled. */
566 DisconnectAllowed = (1 << 8), /**< Indicates that the user is allowed
567 to disconnect the VPN based on
568 policy. */
569 VPNDisabled = (1 << 9), /**< Indicates that the VPN service is
570 to be marked as disabled. */
571 SCEPMode = (1 << 10), /**< Indicates that the client is
572 performing a SCEP cert enrollment. */
573 OnTrustedNetwork = (1 << 11), /**< Indicates that at last check, the
574 client detected that it was on
575 a trusted network. */
576 ManualHostInputAllowed = (1 << 12), /**< Indicates that the user is allowed
577 to add a new host by typing its name
578 in the VPN edit box. */
579 ErrorSuppressed = (1 << 13), /**< Indicates a connection error has
580 been returned fronm the agent, but
581 was suppressed to warning to
582 prevent popup dialog in the UI. */
583 StrictMode = (1 << 14), /**< Indicates that the client is
584 running in strict certificate trust mode. */
585 CLI = (1 << 15), /**< Indicates that the client is
586 a CLI client. */
587 Management = (1 << 16) /**< Indicates that the client is strictly
588 used for initiating a management tunnel. */
589 };
590
591 /**
592 * Indicates the last error seen by the API in this connection attempt.
593 */
594 #if defined(__midl)
595 [v1_enum] /*serialize as 32 bits*/
596 #endif
597 enum VPNError
598 {
599 VPNSuccess = 0, /**< No error has occurred. */
600 VPNError_Generic_FatalError = 1, /**< An error of unknown type has
601 occured */
602
603 VPNError_Connection_Error = 100, /**< An unknown connection error has
604 occured, such as bad hostname, bad
605 group, etc. */
606 VPNError_Connection_InvalidGroupURL, /**< Invalid Group URL specified in the
607 server address */
608
609 VPNError_Network_Error = 200, /**< An unknown network error has
610 occured, such as DNS resolution
611 error, unable to open socket,
612 routing error, captive portal,
613 etc. */
614
615 VPNError_Authentication_Error = 300, /**< An unknown user authenication
616 error has occured. */
617
618 VPNError_Authentication_DAP_Terminate, /**< Access Denied: Your system does
619 not meet policy requirements (DAP). */
620
621 VPNError_ClientCertificate_UnknownError = 400, /**< An unknown client
622 certificate error has
623 occured. */
624 VPNError_ClientCertificate_Missing, /**< A client certificate is required
625 but no client certificate has been
626 found on the system. */
627 VPNError_ClientCertificate_Expired, /**< The client certificate has expired */
628 VPNError_ClientCertificate_NotYetValid, /**< The client certificate is not
629 yet valid. */
630
631 VPNError_ServerCertificate_UnknownError = 500, /**< An unknown error has
632 occured when validating
633 the server certificate. */
634 VPNError_ServerCertificate_Expired, /**< The server certificate has
635 expired. */
636 VPNError_ServerCertificate_NotYetValid /**< The server certificate is not
637 yet valid. */
638 };
639
640 enum CertAuthMode
641 {
642 CertAuth_Automatic, /**< Will try each available certificate in succession
643 until authentication is obtained or we run out of
644 available certificates */
645 CertAuth_Disabled, /**< Will disable Certificate Based Authentication */
646 CertAuth_Manual /**< Will only use preconfigured certificate to attempt
647 Certificate Based Authentication */
648 };
649
650 enum CertificateType
651 {
652 CertificateType_Client,
653 CertificateType_SystemTrusted,
654 CertificateType_Server
655 };
656
657 enum CertConfirmReason
658 {
659 CertConfirmReason_Unspecified,
660 CertConfirmReason_NameMismatch,
661 CertConfirmReason_Expired,
662 CertConfirmReason_NotValidYet,
663 CertConfirmReason_UntrustedSource,
664 CertConfirmReason_InvalidUse,
665 CertConfirmReason_Revoked,
666 CertConfirmReason_Malformed,
667 CertConfirmReason_NotFipsCompliant,
668 CertConfirmReason_InvalidateDate,
669 CertConfirmReason_SignatureAlgorithm,
670 CertConfirmReason_KeySize
671 };
672
673 enum UserResponseError
674 {
675 UserResponseError_None,
676 UserResponseError_Unspecified,
677 UserResponseError_BadServerCert,
678 UserResponseError_SsoNavigation,
679 UserResponseError_SsoGettingCookie,
680 UserResponseError_SsoTimeout,
681 UserResponseError_SsoMissingDependency,
682 UserResponseError_SsoClientCertRequest,
683 UserResponseError_SsoAborted,
684 };
685
686 #if defined(__midl)
687 [v1_enum] /*serialize as 32 bits*/
688 #endif
689 enum ClientType
690 {
691 ClientType_GUI,
692 ClientType_GUI_SBL,
693 ClientType_CLI,
694 ClientType_MGMT
695 };
696
697 #endif // _APISTDHEADER_
SERVICEFAILURE
Definition: api.h:228
EnableScripting
Definition: api.h:431
AllowManualHostInput
Definition: api.h:507
CertificateStoreOverride
Definition: api.h:300
MsgType_Info
Definition: api.h:113
ConnectPromptType
ConnectPromptType
Definition: api.h:244
OnTrustedNetwork
Definition: api.h:573
AllowCaptivePortalRemediation
Definition: api.h:411
RetainVpnOnLogoff
Definition: api.h:447
TrustedDNSServers
Definition: api.h:396
TerminateScriptOnNextEvent
Definition: api.h:434
SCEPMode
Definition: api.h:571
SHOWCONNECTING
Definition: api.h:208
StartBeforeLogon
Definition: api.h:549
SINGLELOGOUT
Definition: api.h:258
VPNError_Authentication_Error
Definition: api.h:615
BlockUntrustedServers
Definition: api.h:510
CertificatePinning
Definition: api.h:517
AutoReconnectBehavior
Definition: api.h:335
MinimizeOnConnect
Definition: api.h:325
VPNError_ClientCertificate_Missing
Definition: api.h:624
MsgType_UrlError
Definition: api.h:115
SERVICESTOPPED
Definition: api.h:231
Prompt_Input
Definition: api.h:269
WMHintReason
WMHintReason
Definition: api.h:220
VPNError_ClientCertificate_UnknownError
Definition: api.h:621
AutomaticVPNPolicy
Definition: api.h:381
AutomaticCertSelection
Definition: api.h:442
UserEnforcement
Definition: api.h:450
PPPExclusionServerIP
Definition: api.h:376
VPNDisconnectReason
VPNDisconnectReason
Definition: api.h:188
VPNSuccess
Definition: api.h:599
Prompt_Combo
Definition: api.h:273
CONNECTED
Definition: api.h:148
MINIMIZE
Definition: api.h:203
NetworkIssue
Definition: api.h:559
Prompt_Password
Definition: api.h:270
CertAuth_Disabled
Definition: api.h:645
AutoConnectOnStart
Definition: api.h:322
CLI
Definition: api.h:585
VPNState
VPNState
Definition: api.h:146
DISCONNECTING
Definition: api.h:151
AllowVPNDisconnect
Definition: api.h:425
StrictMode
Definition: api.h:583
ShowPreConnectMessage
Definition: api.h:316
ServiceDisable
Definition: api.h:296
VPNError_ClientCertificate_NotYetValid
Definition: api.h:628
TrustedDNSDomains
Definition: api.h:393
LocalLanAccess
Definition: api.h:328
LinuxLogonEnforcement
Definition: api.h:359
CONNECTING
Definition: api.h:150
MsgType_Critical
Definition: api.h:121
Prompt_SSO
Definition: api.h:279
OPEN
Definition: api.h:204
RECONNECTING
Definition: api.h:152
ErrorSuppressed
Definition: api.h:579
User
Definition: api.h:532
WMHint
WMHint
Definition: api.h:201
QUIT
Definition: api.h:205
DeviceLockMaximumTimeoutMinutes
Definition: api.h:460
VPNError_Generic_FatalError
Definition: api.h:600
ManualHostInputAllowed
Definition: api.h:576
Global
Definition: api.h:533
PAUSING
Definition: api.h:158
TrustedNetworkPolicy
Definition: api.h:384
MessageType
MessageType
Definition: api.h:108
VPNError_ServerCertificate_UnknownError
Definition: api.h:631
VPNError_ServerCertificate_Expired
Definition: api.h:634
SINGLESIGNON
Definition: api.h:257
AllowLocalProxyConnections
Definition: api.h:368
BypassConnectUponSessionTimeout
Definition: api.h:390
LEGACY_SINGLESIGNON
Definition: api.h:259
REFRESHHOSTNAMES
Definition: api.h:206
RSASecurIDIntegration
Definition: api.h:347
CERTIFICATE
Definition: api.h:246
MsgType_Ephemeral_Alert
Definition: api.h:118
SDITokenType
SDITokenType
Definition: api.h:133
MsgType_Error
Definition: api.h:110
AuthenticationTimeout
Definition: api.h:491
DeviceLockRequired
Definition: api.h:453
VPNError_ServerCertificate_NotYetValid
Definition: api.h:636
AutoReconnect
Definition: api.h:332
Management
Definition: api.h:587
VPNError_Network_Error
Definition: api.h:609
CREDENTIALS
Definition: api.h:249
CertificateStoreLinux
Definition: api.h:312
IPProtocolSupport
Definition: api.h:501
GUI
Definition: api.h:552
OperatingMode
OperatingMode
Definition: api.h:545
CONNECT
Definition: api.h:233
MsgType_Alert
Definition: api.h:111
SafeWordSofTokenIntegration
Definition: api.h:493
PublicProxyServerAddress
Definition: api.h:513
PreferenceScope
PreferenceScope
Definition: api.h:530
UntrustedNetworkPolicy
Definition: api.h:387
AutomaticHeadendSelection
Definition: api.h:564
TrustedHttpsServerList
Definition: api.h:399
VPNError_Connection_InvalidGroupURL
Definition: api.h:606
Quarantined
Definition: api.h:562
CaptivePortalRemediationBrowserFailover
Definition: api.h:503
MsgType_Warn
Definition: api.h:112
WindowsVPNEstablishment
Definition: api.h:356
VPNSubState
VPNSubState
Definition: api.h:170
VPNError_ClientCertificate_Expired
Definition: api.h:627
SuppressConnectionRetries
Definition: api.h:427
PreferenceId
PreferenceId
Definition: api.h:294
ClearSmartcardPin
Definition: api.h:499
MANUAL_PKCS12_IMPORT
Definition: api.h:253
CaptivePortalRemediationTimeout
Definition: api.h:416
CertificateStore
Definition: api.h:304
AllowIPsecOverSSL
Definition: api.h:496
Prompt_Header
Definition: api.h:274
AlwaysOn
Definition: api.h:404
AutoUpdate
Definition: api.h:344
AutoServerSelectionSuspendTime
Definition: api.h:486
TrustedNetworkDetection
Definition: api.h:554
MsgType_Announcement
Definition: api.h:116
CertificateStoreMac
Definition: api.h:308
DisableUntrustedInterfaces
Definition: api.h:401
VPNError
VPNError
Definition: api.h:597
VPNError_Authentication_DAP_Terminate
Definition: api.h:618
DeviceLockMinimumPasswordLength
Definition: api.h:465
CertAuthMode
CertAuthMode
Definition: api.h:640
EnableAutomaticServerSelection
Definition: api.h:477
VPNDisabled
Definition: api.h:569
DisableCaptivePortalDetection
Definition: api.h:330
Prompt_Banner
Definition: api.h:272
AlwaysOnVpn
Definition: api.h:557
UserAndGlobal
Definition: api.h:534
MsgType_Status
Definition: api.h:114
SuspendOnConnectedStandby
Definition: api.h:339
DISCONNECTED
Definition: api.h:149
REFRESHPREFS
Definition: api.h:207
ApplyLastVPNLocalResourceRules
Definition: api.h:420
PROXY
Definition: api.h:251
CLOSECREDENTIALPOPUP
Definition: api.h:209
ProxySettings
Definition: api.h:366
WindowsLogonEnforcement
Definition: api.h:352
UseStartBeforeLogon
Definition: api.h:342
AllowedHosts
Definition: api.h:429
PromptType
PromptType
Definition: api.h:269
DeviceLockPasswordComplexity
Definition: api.h:474
VPNError_Connection_Error
Definition: api.h:603
ConnectFailurePolicy
Definition: api.h:406
SECONDGUISTART
Definition: api.h:222
Prompt_Hidden
Definition: api.h:276
FIPS
Definition: api.h:547
Prompt_CheckBox
Definition: api.h:278
CertAuth_Automatic
Definition: api.h:642
SSOPOLLING
Definition: api.h:160
LinuxVPNEstablishment
Definition: api.h:363
PROXYREQUEST
Definition: api.h:226
AutoServerSelectionImprovement
Definition: api.h:480
EnablePostSBLOnConnectScript
Definition: api.h:438
STATUS
Definition: api.h:255
DisconnectAllowed
Definition: api.h:566
PPPExclusion
Definition: api.h:371
CertAuth_Manual
Definition: api.h:646
DISCONNECT
Definition: api.h:230
PAUSED
Definition: api.h:159