AnyConnect Secure Mobility Client 5.1.12.146
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
86typedef std::map<tstring, tstring> ApiStringMap;
87typedef 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
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
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
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
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 * WMHint
187 * provides a hint for the GUI to either minimize or un-minimize.
188 */
189#if defined(__midl)
190[v1_enum] /*serialize as 32 bits*/
191#endif
193{
194 MINIMIZE, /**< hint to minimize GUI */
195 OPEN, /**< hint to un-minimize GUI */
196 QUIT, /**< hint that GUI should close. @see WMHintReason */
197 REFRESHHOSTNAMES,/**< hint to refresh the list of secure gateways */
198 REFRESHPREFS, /**< hint to refresh the preferences */
199 SHOWCONNECTING, /**< hint to display "connecting" status */
200 CLOSECREDENTIALPOPUP, /**< hint to close the credentials popup */
201};
202
203
204/**
205 * WMHintReason
206 * provides a reason indicator for the #WMHint
207 */
208#if defined(__midl)
209[v1_enum] /*serialize as 32 bits*/
210#endif
212{
213 SECONDGUISTART, /**< Indicates a second GUI has been launched. This
214 indicator is used to suggest that the GUI
215 already running be OPENed and that the first one
216 should exit. */
217 PROXYREQUEST, /**< Proxy credential request can be for web-launch or
218 standalone-initiated connections. */
219 SERVICEFAILURE, /**< This tag is used when the VPN service
220 is no longer available. */
221 DISCONNECT, /**< Any disconnect notices should be seen by the user. */
222 SERVICESTOPPED, /**< This tag will be used in cases where the VPN service
223 has been stopped. */
224 CONNECT, /**< Tag indicating an action to be taken due to connect,
225 for example a request to minimize the UI. */
226 REASONUNKNOWN /**< */
227};
228
229/**
230 * provides an indication of the type of credential data being requested.
231 */
232#if defined(__midl)
233[v1_enum] /*serialize as 32 bits*/
234#endif
236{
237 CERTIFICATE, /**< Indicates a certificate-only type of connection and
238 would not normally be sent to client unless a
239 post-authentication banner is to be displayed. */
240 CREDENTIALS, /**< Indicates that the user is to be prompted for authentication
241 credentials */
242 PROXY, /**< Indicates that the user is to be prompted for
243 proxy-authentication credentials */
244 MANUAL_PKCS12_IMPORT, /**< Indicates that the user is to be prompted for passwords related
245 to PKCS12 import*/
246 STATUS, /**< Indicates that status messages are to be displayed to
247 the user*/
248 SINGLESIGNON, /**< Indicates an embedded browser based single sign-on authentication method is requested. */
249 SINGLELOGOUT, /**< Indicates an embedded browser based single sign-on authentication logout is requested. */
250 LEGACY_SINGLESIGNON, /**< (deprecated) Indicates a browser based single sign-on authentication method is requested. */
251};
252
253
254/**
255 * Indicates the prompt or credential type.
256 */
257#if defined(__midl)
258[v1_enum] /*serialize as 32 bits*/
259#endif
260enum PromptType { Prompt_Input, /**< label and value. */
261 Prompt_Password, /**< label and value, indicates user
262 response should be masked. */
263 Prompt_Banner, /**< value (the banner) with no label set. */
264 Prompt_Combo, /**< list with choices options. */
265 Prompt_Header, /**< label intended as header and with
266 value. */
267 Prompt_Hidden, /**< hidden value, should be ignored and
268 left unchanged in response. */
269 Prompt_CheckBox, /**< label and value (contrained to true or false) */
270 Prompt_SSO /**< single sign-on authentication token prompt */
271};
272
273#if defined(__midl)
274[v1_enum] /*serialize as 32 bits*/
275#endif
276
277/*
278 * ***************** !!! ATTENTION !!! ***********************************
279 * *
280 * * When updating this preference enum, you must ensure that the enum in
281 * * vpn/Api/jni/java/Preference.java is also updated.
282 * *
283 * ***************** !!! ATTENTION !!! ***********************************
284 */
286{
287 ServiceDisable, /**< This preference disable the VPN service.
288 If more than one profile exists and any one
289 profile has VPN enabled, then it will be
290 enabled. False is the default. */
291 CertificateStoreOverride,/**< This preference will trigger an alternate
292 authentication sequence in the API. The
293 preference is only settable by an
294 administrator. */
295 CertificateStore, /**< This preference indicates which Windows certificate
296 store AnyConnect should look in for client certificates.
297 The options are All, Machine and User with a default of All.
298 The preference is only settable by an administrator. */
299 CertificateStoreMac, /**< This preference indicates which macOS keychain
300 AnyConnect should look in for client certificates.
301 The options are All, System and Login with a default of All.
302 The preference is only settable by an administrator. */
303 CertificateStoreLinux, /**< This preference indicates which Linux certificate
304 store AnyConnect should look in for client certificates.
305 The options are All, Machine and User with a default of All.
306 The preference is only settable by an administrator. */
307 ShowPreConnectMessage, /**< The ShowPreConnectMessage preference gives the
308 administrator the ability to display an AnyConnect
309 startup banner message. The message will appear
310 only once per AnyConnect program start. The
311 preference is only settable by an
312 administrator. */
313 AutoConnectOnStart, /**< This preference allows the user to select
314 whether to establish a connection automatically
315 on startup or not. */
316 MinimizeOnConnect, /**< This preference allows the user to select if
317 the GUI should minimize when the connection is
318 established */
319 LocalLanAccess, /**< This preference will provide a mechanism where
320 the user can disable access to their Local LAN. */
321 DisableCaptivePortalDetection, /**<This preference will provide a mechanism where
322 the user can disable captive portal detection.*/
323 AutoReconnect, /**< First control of the reconnect behavior. If the
324 client becomes disconnected for any reason, a
325 reconnect attempt is made. */
326 AutoReconnectBehavior, /**< Second control of the reconnect behavior. When
327 coming out of suspend/hibernate/standby mode.
328 Options are disconnect on suspend and reconnect
329 after suspend. */
330 SuspendOnConnectedStandby, /**< This setting allows to control whether the VPN tunnel
331 is suspended when the system enters the Connected Standby
332 mode. It applies only to Windows 8 and above. */
333 UseStartBeforeLogon, /**< This preference allows an administrator to
334 control the use of the Start Before Logon
335 feature. The preference can be set to true (on)
336 or false (off). */
337 AutoUpdate, /**< Once the Downloader has loaded the profile, it
338 can check the AutoUpdate preference to see if
339 updates are either disabled or enabled */
340 RSASecurIDIntegration, /**< This preference will enable the administrator
341 and possibly end user to select the preferred
342 method of managing their SDI PIN and PASSCODE
343 interactions. Options are Automatic (default),
344 SoftwareTokens and HardwareTokens. */
345 WindowsLogonEnforcement,/**< This preference allows an administrator to
346 control if more than one user may be logged into
347 the client PC during the VPN connection (Windows
348 only). */
349 WindowsVPNEstablishment,/**< This preference allows an administrator to
350 control whether or not remote users may initiate
351 a VPN connection (Windows only). */
352 LinuxLogonEnforcement, /**< 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 (Linux
355 only). */
356 LinuxVPNEstablishment, /**< This preference allows an administrator to
357 control whether or not remote users may initiate
358 a VPN connection (Linux only). */
359 ProxySettings, /**< This preference allows an administrator to
360 control how user's proxy setups are handled.*/
361 AllowLocalProxyConnections, /**< This preference allows the administrator to control
362 whether to allow establishing a connection through
363 a local proxy. */
364 PPPExclusion, /**< This preference allows an administrator to control
365 the policy used to exclude routes to
366 PPP servers when connecting over L2TP or PPTP.
367 Options are Automatic (default), Disable,
368 and Override. */
369 PPPExclusionServerIP, /**< When PPPExclusion is set to Manual,
370 the value of this preference allows an
371 end user to specify the address of a
372 PPP server that should be excluded
373 from tunnel traffic. */
374 AutomaticVPNPolicy, /**< This preference allows an administrator to
375 define a policy to automatically manage when a
376 VPN connection should be started or stopped. */
377 TrustedNetworkPolicy, /**< This preference allows an administrator to
378 define a policy for users in trusted networks.
379 The options are: Disconnect or DoNothing. */
380 UntrustedNetworkPolicy, /**< This preference allows an administrator to
381 define a policy for users in untrusted networks.
382 The options are: Connect or DoNothing. */
383 BypassConnectUponSessionTimeout, /**< This preference allows an administrator
384 the ability to instruct the client to bypass the
385 automatic connection retry after a VPN session timeout. */
386 TrustedDNSDomains, /**< This preference defines a list of comma
387 separated DNS suffixes that a network interface
388 in a trusted network might have. */
389 TrustedDNSServers, /**< This preference defines a list of comma
390 separated DNS servers that a network interface
391 in a trusted network might have. */
392 TrustedHttpsServerList, /**< This preference defines a list of comma separated
393 https servers reachable only via a trusted network.*/
394 DisableUntrustedInterfaces, /**< This preference disables interface without trusted
395 server connectivity while in trusted network
396 when there are multiple network interfaces. */
397 AlwaysOn, /**< This preference governs VPN reestablishment after
398 interruptions */
399 ConnectFailurePolicy, /**< This preference gives the network administrator
400 the ability to dictate the network access allowed
401 by the client endpoint device following a VPN
402 connection establishment failure. It is a component
403 of Always On */
404 AllowCaptivePortalRemediation, /**< This preference gives the network administrator
405 the ability to dictate the network access
406 allowed by the client endpoint device following
407 a VPN connection establishment failure it is a
408 component of Always On */
409 CaptivePortalRemediationTimeout, /**< This preference allows the network administrator
410 the ability to impose a time limit for captive portal
411 remediation when the ConnectFailurePolicy value is Closed
412 It is a component of Always On */
413 ApplyLastVPNLocalResourceRules, /**< This preference gives the network administrator
414 the ability to allow split routes and firewall rules
415 to be applied following a VPN connection establishment
416 failure when the ConnectFailurePolicy value is Closed
417 It is a component of Always On */
418 AllowVPNDisconnect, /**< During Always On, this specifies that the user is allowed to
419 disconnect the VPN session. */
420 SuppressConnectionRetries, /**< During Always On, this preference gives the network administrator
421 the ability to suppress the VPN connection retry attempts */
422 AllowedHosts, /**< During Always On, user has access to the specified hosts
423 when VPN is disconnected. */
424 EnableScripting, /**< This preference allows an administrator to
425 enable scripting (on connect or on
426 disconnect). */
427 TerminateScriptOnNextEvent, /**< This preference dictates whether or not
428 AnyConnect will terminate a running script
429 process if a transition to another
430 scriptable event occurs. */
431 EnablePostSBLOnConnectScript, /**< This preference is used to control whether
432 or not the OnConnect script will be launched
433 from the desktop GUI when a tunnel has been
434 established via SBL. */
435 AutomaticCertSelection, /**< This preference dictates whether or not to disable
436 the default automatic certificate selection for user
437 certificates. If disabled, a certificate selection dialog is
438 displayed. This only applies if the GUI is enabled
439 and not SBL. This only applies to Windows (not WinMobile). */
440 RetainVpnOnLogoff, /**< First control of the logoff behavior. This preference allows
441 an administrator to control if the VPN is terminated or retained
442 after user logs off.*/
443 UserEnforcement, /**< Second control of the logoff behavior. When the VPN connection has
444 been retained after user logged off. Controls what user can log in
445 and keep the VPN connection. Options are same user only and any user. */
446 DeviceLockRequired, /**< This preference indicates whether or not
447 a Windows Mobile device must be configured
448 with a password or PIN prior to establishing
449 a VPN connection. This configuration is
450 only valid on Windows Mobile devices that
451 use the Microsoft Default Local
452 Authentication Provider (LAP). */
453 DeviceLockMaximumTimeoutMinutes, /**< When set to a non-negative number,
454 this preference specifies the maximum
455 number of minutes a device can be
456 inactive before device lock takes
457 into effect. (WM5/WM5AKU2+) */
458 DeviceLockMinimumPasswordLength, /**< When set to a non-negative number,
459 this preference specifies that any
460 PIN/password used for device lock
461 must be equal to or longer than
462 the specified value, in characters.
463 This setting must be pushed down to
464 the mobile device by syncing with
465 an Exchange server before it can be
466 enforced. (WM5AKU2+) */
467 DeviceLockPasswordComplexity, /**< This preference checks whether or
468 not the password belongs to one of
469 three subtypes: alpha, pin, strong */
470 EnableAutomaticServerSelection, /**< Automatic server selection will
471 automatically select the optimal
472 secure gateway for the endpoint */
473 AutoServerSelectionImprovement, /**< During a reconnection attempt after
474 a system resume, this setting
475 specifies the minimum estimated
476 performance improvement required to
477 justify transitioning a user to a new server
478 This value represents percentage in 0..100 */
479 AutoServerSelectionSuspendTime, /**< During a reconnection attempt after
480 a system resume, this specifies the
481 minimum time a user must have been
482 suspended in order to justify a new
483 server selection calculation. Unit is hours */
484 AuthenticationTimeout, /**< Time, in seconds, that the client waits
485 for authentication to be completed.*/
486 SafeWordSofTokenIntegration, /**< This preference will enable the administrator and possibly
487 the end user to enable SafeWord SofToken integration.
488 Options are Enabled (true) and Disabled (false - default). */
489 AllowIPsecOverSSL, /**< if 'true' then tunneling of IPSEC over SSL
490 is made possible with help from the ASA.
491 */
492 ClearSmartcardPin, /**< This preference controls whether the smartcard pin
493 will be cleared on a successful connection*/
494 IPProtocolSupport, /**< This preference controls which protocol(s) will be
495 allowed for the connection*/
496 CaptivePortalRemediationBrowserFailover, /**< This preference is applicable to enhanced captive portal
497 remediation and specifies whether the user is allowed to
498 opt for an external browser for remediation, as opposed to
499 the AnyConnect browser. */
500 AllowManualHostInput, /**< This preference specifies whether the user
501 is allowed to type a new hostname in the VPN
502 edit box. */
503 BlockUntrustedServers, /**< This preference specifies whether the user wants
504 to allow for connections to secure gateways with
505 certificate errors. */
506 PublicProxyServerAddress, /**< This preference specifies the public proxy server
507 address to be used. This number is in the format
508 ServerAddr:ServerPort (ex. 101.89.85.444:8080)
509 or just the FQDN. */
510 CertificatePinning, /**< This preference specifies whether Certificate Pinning
511 check should be performed during server certificate
512 verification. */
513 UnknownPreference
514};
515
516
517/**
518 * Indicates the scope of the preferences contained in a PreferenceInfo object
519 */
520#if defined(__midl)
521[v1_enum] /*serialize as 32 bits*/
522#endif
524{
525 User, /**< Indicates that the preferences were set by a user */
526 Global, /**< Indicates that the preferences are global */
527 UserAndGlobal /**< Indicates that we have both user and global preferences */
528};
529
530/**
531 * Indicates the client mode of operation. Unlike tunneling mode or other
532 * mutually exclusive modes, client operating modes are independent settings,
533 * several of which can be turned on simultaneously.
534 */
535#if defined(__midl)
536[v1_enum] /*serialize as 32 bits*/
537#endif
539{
540 FIPS = (1 << 0), /**< Indicates that the client is
541 running in FIPS mode. */
542 StartBeforeLogon = (1 << 1), /**< Indicates that the client is
543 running in Start Before Login
544 mode. */
545 GUI = (1 << 2), /**< Indicates that the client is
546 a GUI client. */
547 TrustedNetworkDetection = (1 << 3), /**< Indicates that a Trusted Network
548 Detection policy is enabled for
549 the client. */
550 AlwaysOnVpn = (1 << 4), /**< Indicates that the Always On
551 policy is enabled for the client. */
552 NetworkIssue = (1 << 5), /**< For user notifications only.
553 Indication by API to the UI that
554 there is a network condition. */
555 Quarantined = (1 << 6), /**< Indicates that the VPN session is being
556 Quarantined by the secure gateway. */
557 AutomaticHeadendSelection= (1 << 7), /**< Indicates that Automatic Headend
558 is enabled. */
559 DisconnectAllowed = (1 << 8), /**< Indicates that the user is allowed
560 to disconnect the VPN based on
561 policy. */
562 VPNDisabled = (1 << 9), /**< Indicates that the VPN service is
563 to be marked as disabled. */
564 SCEPMode = (1 << 10), /**< Indicates that the client is
565 performing a SCEP cert enrollment. */
566 OnTrustedNetwork = (1 << 11), /**< Indicates that at last check, the
567 client detected that it was on
568 a trusted network. */
569 ManualHostInputAllowed = (1 << 12), /**< Indicates that the user is allowed
570 to add a new host by typing its name
571 in the VPN edit box. */
572 ErrorSuppressed = (1 << 13), /**< Indicates a connection error has
573 been returned fronm the agent, but
574 was suppressed to warning to
575 prevent popup dialog in the UI. */
576 StrictMode = (1 << 14), /**< Indicates that the client is
577 running in strict certificate trust mode. */
578 CLI = (1 << 15), /**< Indicates that the client is
579 a CLI client. */
580 Management = (1 << 16) /**< Indicates that the client is strictly
581 used for initiating a management tunnel. */
582};
583
584/**
585 * Indicates the last error seen by the API in this connection attempt.
586 */
587#if defined(__midl)
588[v1_enum] /*serialize as 32 bits*/
589#endif
591{
592 VPNSuccess = 0, /**< No error has occurred. */
593 VPNError_Generic_FatalError = 1, /**< An error of unknown type has
594 occured */
595
596 VPNError_Connection_Error = 100, /**< An unknown connection error has
597 occured, such as bad hostname, bad
598 group, etc. */
599 VPNError_Connection_InvalidGroupURL, /**< Invalid Group URL specified in the
600 server address */
601
602 VPNError_Network_Error = 200, /**< An unknown network error has
603 occured, such as DNS resolution
604 error, unable to open socket,
605 routing error, captive portal,
606 etc. */
607
608 VPNError_Authentication_Error = 300, /**< An unknown user authenication
609 error has occured. */
610
611 VPNError_Authentication_DAP_Terminate, /**< Access Denied: Your system does
612 not meet policy requirements (DAP). */
613
614 VPNError_ClientCertificate_UnknownError = 400, /**< An unknown client
615 certificate error has
616 occured. */
617 VPNError_ClientCertificate_Missing, /**< A client certificate is required
618 but no client certificate has been
619 found on the system. */
620 VPNError_ClientCertificate_Expired, /**< The client certificate has expired */
621 VPNError_ClientCertificate_NotYetValid, /**< The client certificate is not
622 yet valid. */
623
624 VPNError_ServerCertificate_UnknownError = 500, /**< An unknown error has
625 occured when validating
626 the server certificate. */
627 VPNError_ServerCertificate_Expired, /**< The server certificate has
628 expired. */
629 VPNError_ServerCertificate_NotYetValid /**< The server certificate is not
630 yet valid. */
631};
632
634{
635 CertAuth_Automatic, /**< Will try each available certificate in succession
636 until authentication is obtained or we run out of
637 available certificates */
638 CertAuth_Disabled, /**< Will disable Certificate Based Authentication */
639 CertAuth_Manual /**< Will only use preconfigured certificate to attempt
640 Certificate Based Authentication */
641};
642
643enum CertificateType
644{
645 CertificateType_Client,
646 CertificateType_SystemTrusted,
647 CertificateType_Server
648};
649
650enum CertConfirmReason
651{
652 CertConfirmReason_Unspecified,
653 CertConfirmReason_NameMismatch,
654 CertConfirmReason_Expired,
655 CertConfirmReason_NotValidYet,
656 CertConfirmReason_UntrustedSource,
657 CertConfirmReason_InvalidUse,
658 CertConfirmReason_Revoked,
659 CertConfirmReason_Malformed,
660 CertConfirmReason_NotFipsCompliant,
661 CertConfirmReason_InvalidateDate,
662 CertConfirmReason_SignatureAlgorithm,
663 CertConfirmReason_KeySize
664};
665
666enum UserResponseError
667{
668 UserResponseError_None,
669 UserResponseError_Unspecified,
670 UserResponseError_BadServerCert,
671 UserResponseError_SsoNavigation,
672 UserResponseError_SsoGettingCookie,
673 UserResponseError_SsoTimeout,
674 UserResponseError_SsoMissingDependency,
675 UserResponseError_SsoClientCertRequest,
676 UserResponseError_SsoAborted,
677};
678
679#if defined(__midl)
680[v1_enum] /*serialize as 32 bits*/
681#endif
682enum ClientType
683{
684 ClientType_GUI,
685 ClientType_GUI_SBL,
686 ClientType_CLI,
687 ClientType_MGMT
688};
689
690#endif // _APISTDHEADER_
SDITokenType
Definition api.h:134
CertAuthMode
Definition api.h:634
@ CertAuth_Automatic
Definition api.h:635
@ CertAuth_Manual
Definition api.h:639
@ CertAuth_Disabled
Definition api.h:638
PreferenceScope
Definition api.h:524
@ Global
Definition api.h:526
@ UserAndGlobal
Definition api.h:527
@ User
Definition api.h:525
PromptType
Definition api.h:260
@ Prompt_Input
Definition api.h:260
@ Prompt_Hidden
Definition api.h:267
@ Prompt_CheckBox
Definition api.h:269
@ Prompt_Header
Definition api.h:265
@ Prompt_SSO
Definition api.h:270
@ Prompt_Combo
Definition api.h:264
@ Prompt_Password
Definition api.h:261
@ Prompt_Banner
Definition api.h:263
WMHint
Definition api.h:193
@ OPEN
Definition api.h:195
@ REFRESHHOSTNAMES
Definition api.h:197
@ MINIMIZE
Definition api.h:194
@ REFRESHPREFS
Definition api.h:198
@ QUIT
Definition api.h:196
@ SHOWCONNECTING
Definition api.h:199
@ CLOSECREDENTIALPOPUP
Definition api.h:200
WMHintReason
Definition api.h:212
@ CONNECT
Definition api.h:224
@ SERVICEFAILURE
Definition api.h:219
@ DISCONNECT
Definition api.h:221
@ SECONDGUISTART
Definition api.h:213
@ SERVICESTOPPED
Definition api.h:222
@ PROXYREQUEST
Definition api.h:217
VPNError
Definition api.h:591
@ VPNError_Connection_Error
Definition api.h:596
@ VPNError_ClientCertificate_Expired
Definition api.h:620
@ VPNError_ClientCertificate_Missing
Definition api.h:617
@ VPNError_ServerCertificate_NotYetValid
Definition api.h:629
@ VPNError_Generic_FatalError
Definition api.h:593
@ VPNError_ClientCertificate_UnknownError
Definition api.h:614
@ VPNSuccess
Definition api.h:592
@ VPNError_ServerCertificate_UnknownError
Definition api.h:624
@ VPNError_Authentication_Error
Definition api.h:608
@ VPNError_Connection_InvalidGroupURL
Definition api.h:599
@ VPNError_ServerCertificate_Expired
Definition api.h:627
@ VPNError_ClientCertificate_NotYetValid
Definition api.h:621
@ VPNError_Network_Error
Definition api.h:602
@ VPNError_Authentication_DAP_Terminate
Definition api.h:611
ConnectPromptType
Definition api.h:236
@ SINGLESIGNON
Definition api.h:248
@ MANUAL_PKCS12_IMPORT
Definition api.h:244
@ CREDENTIALS
Definition api.h:240
@ CERTIFICATE
Definition api.h:237
@ STATUS
Definition api.h:246
@ SINGLELOGOUT
Definition api.h:249
@ PROXY
Definition api.h:242
@ LEGACY_SINGLESIGNON
Definition api.h:250
VPNSubState
Definition api.h:171
PreferenceId
Definition api.h:286
@ TrustedDNSServers
Definition api.h:389
@ AutoReconnectBehavior
Definition api.h:326
@ AllowedHosts
Definition api.h:422
@ CaptivePortalRemediationTimeout
Definition api.h:409
@ WindowsLogonEnforcement
Definition api.h:345
@ AllowCaptivePortalRemediation
Definition api.h:404
@ PPPExclusionServerIP
Definition api.h:369
@ CaptivePortalRemediationBrowserFailover
Definition api.h:496
@ AutoServerSelectionImprovement
Definition api.h:473
@ SuppressConnectionRetries
Definition api.h:420
@ AlwaysOn
Definition api.h:397
@ AutoUpdate
Definition api.h:337
@ DisableUntrustedInterfaces
Definition api.h:394
@ AutoReconnect
Definition api.h:323
@ AllowManualHostInput
Definition api.h:500
@ ConnectFailurePolicy
Definition api.h:399
@ TrustedHttpsServerList
Definition api.h:392
@ UseStartBeforeLogon
Definition api.h:333
@ DisableCaptivePortalDetection
Definition api.h:321
@ CertificateStoreOverride
Definition api.h:291
@ TrustedDNSDomains
Definition api.h:386
@ ProxySettings
Definition api.h:359
@ PPPExclusion
Definition api.h:364
@ ShowPreConnectMessage
Definition api.h:307
@ DeviceLockRequired
Definition api.h:446
@ PublicProxyServerAddress
Definition api.h:506
@ ApplyLastVPNLocalResourceRules
Definition api.h:413
@ CertificateStore
Definition api.h:295
@ UserEnforcement
Definition api.h:443
@ WindowsVPNEstablishment
Definition api.h:349
@ SuspendOnConnectedStandby
Definition api.h:330
@ DeviceLockMaximumTimeoutMinutes
Definition api.h:453
@ AutoConnectOnStart
Definition api.h:313
@ LinuxLogonEnforcement
Definition api.h:352
@ LinuxVPNEstablishment
Definition api.h:356
@ AutomaticCertSelection
Definition api.h:435
@ AllowIPsecOverSSL
Definition api.h:489
@ TerminateScriptOnNextEvent
Definition api.h:427
@ AuthenticationTimeout
Definition api.h:484
@ AutomaticVPNPolicy
Definition api.h:374
@ BypassConnectUponSessionTimeout
Definition api.h:383
@ EnableScripting
Definition api.h:424
@ AutoServerSelectionSuspendTime
Definition api.h:479
@ RSASecurIDIntegration
Definition api.h:340
@ EnableAutomaticServerSelection
Definition api.h:470
@ IPProtocolSupport
Definition api.h:494
@ RetainVpnOnLogoff
Definition api.h:440
@ LocalLanAccess
Definition api.h:319
@ AllowVPNDisconnect
Definition api.h:418
@ ServiceDisable
Definition api.h:287
@ EnablePostSBLOnConnectScript
Definition api.h:431
@ CertificatePinning
Definition api.h:510
@ UntrustedNetworkPolicy
Definition api.h:380
@ DeviceLockMinimumPasswordLength
Definition api.h:458
@ BlockUntrustedServers
Definition api.h:503
@ MinimizeOnConnect
Definition api.h:316
@ CertificateStoreLinux
Definition api.h:303
@ AllowLocalProxyConnections
Definition api.h:361
@ CertificateStoreMac
Definition api.h:299
@ DeviceLockPasswordComplexity
Definition api.h:467
@ SafeWordSofTokenIntegration
Definition api.h:486
@ TrustedNetworkPolicy
Definition api.h:377
@ ClearSmartcardPin
Definition api.h:492
MessageType
Definition api.h:109
@ MsgType_Error
Definition api.h:110
@ MsgType_Announcement
Definition api.h:116
@ MsgType_Critical
Definition api.h:121
@ MsgType_Info
Definition api.h:113
@ MsgType_UrlError
Definition api.h:115
@ MsgType_Alert
Definition api.h:111
@ MsgType_Status
Definition api.h:114
@ MsgType_Warn
Definition api.h:112
@ MsgType_Ephemeral_Alert
Definition api.h:118
OperatingMode
Definition api.h:539
@ CLI
Definition api.h:578
@ VPNDisabled
Definition api.h:562
@ FIPS
Definition api.h:540
@ NetworkIssue
Definition api.h:552
@ DisconnectAllowed
Definition api.h:559
@ GUI
Definition api.h:545
@ ErrorSuppressed
Definition api.h:572
@ ManualHostInputAllowed
Definition api.h:569
@ AlwaysOnVpn
Definition api.h:550
@ AutomaticHeadendSelection
Definition api.h:557
@ StrictMode
Definition api.h:576
@ TrustedNetworkDetection
Definition api.h:547
@ Management
Definition api.h:580
@ Quarantined
Definition api.h:555
@ OnTrustedNetwork
Definition api.h:566
@ StartBeforeLogon
Definition api.h:542
@ SCEPMode
Definition api.h:564
VPNState
Definition api.h:147
@ CONNECTING
Definition api.h:150
@ PAUSING
Definition api.h:158
@ RECONNECTING
Definition api.h:152
@ SSOPOLLING
Definition api.h:160
@ CONNECTED
Definition api.h:148
@ DISCONNECTING
Definition api.h:151
@ DISCONNECTED
Definition api.h:149
@ PAUSED
Definition api.h:159