Class AppDescriptor
Represents what the app is and offers on this device: its identity, its features and its links, which the UI reads once.
public class AppDescriptor
- Inheritance
-
AppDescriptor
- Inherited Members
Properties
AllowEndPointStrategy
Gets a value indicating whether the settings may choose how a server's addresses are ordered (EndPointStrategy).
public required bool AllowEndPointStrategy { get; init; }
Property Value
AlwaysOnSupport
Gets how the app supports always-on VPN on this device.
public required AlwaysOnSupport AlwaysOnSupport { get; init; }
Property Value
AppId
Gets the app's ID, as the head names it, which the client's ID is made from.
public required string AppId { get; init; }
Property Value
AppName
Gets the app's name.
public required string AppName { get; init; }
Property Value
AuthProviderIds
Gets the IDs of the sign-in methods the app offers (AuthProviders), as its account backend declares them; none where it has no account backend.
public required IReadOnlyList<string> AuthProviderIds { get; init; }
Property Value
Remarks
They are strings, not an enum, as a third party's provider declares its own; the UI's label for each is
SIGN_IN_WITH_ and the ID in upper case.
ChannelProtocols
Gets the channel protocols the app's VPN can use on this device.
public required IReadOnlyList<ChannelProtocol> ChannelProtocols { get; init; }
Property Value
ClientId
Gets the client's ID, made from the app's ID and the device's or the install's own.
public required string ClientId { get; init; }
Property Value
CompanyName
Gets the maker's name, for a document that names it ({companyName}) as AppName is {appName}.
public required string CompanyName { get; init; }
Property Value
CustomData
Gets the JSON the head hands the UI uninterpreted, as a product's own settings, or null.
public required JsonElement? CustomData { get; init; }
Property Value
DebugCommands
Gets the debug commands the app knows.
public required IReadOnlyList<string> DebugCommands { get; init; }
Property Value
IsAccountSupported
Gets a value indicating whether the app has an account backend, with its sign-in.
public required bool IsAccountSupported { get; init; }
Property Value
IsAdSupported
Gets or sets a value indicating whether the app shows ads.
public required bool IsAdSupported { get; set; }
Property Value
IsAddAccessKeySupported
Gets a value indicating whether the person may add an access key.
public required bool IsAddAccessKeySupported { get; init; }
Property Value
IsAnonymousTrackerSupported
Gets a value indicating whether this build collects anonymous data at all: usage events, and the crash reports that go with them where the tracker reports crashes.
public required bool IsAnonymousTrackerSupported { get; init; }
Property Value
Remarks
It follows the tracker the app could make, so the UI drops the privacy consent in a build that collects nothing; the person's choice is AllowAnonymousTracker.
IsAutomaticUpdateSupported
Gets a value indicating whether the settings turn the automatic update on and off, as a desktop's own updater does (GetAutomaticUpdate(CancellationToken)); a store keeps its own setting.
public required bool IsAutomaticUpdateSupported { get; init; }
Property Value
IsBillingSupported
Gets a value indicating whether the app has in-app purchasing.
public required bool IsBillingSupported { get; init; }
Property Value
IsDebugMode
Gets a value indicating whether the app runs in its debug mode.
public required bool IsDebugMode { get; init; }
Property Value
IsExcludeAppsSupported
Gets a value indicating whether the split tunneling by app can exclude apps on this device.
public required bool IsExcludeAppsSupported { get; init; }
Property Value
IsIncludeAppsSupported
Gets a value indicating whether the split tunneling by app can include apps on this device.
public required bool IsIncludeAppsSupported { get; init; }
Property Value
IsKillSwitchSupported
Gets a value indicating whether the app keeps a kill switch of its own, as a desktop's (KillSwitch).
public required bool IsKillSwitchSupported { get; init; }
Property Value
Remarks
Android's is the system's setting, which its page opens (IsKillSwitchSettingsSupported).
IsLicenseAgreementRequired
Gets a value indicating whether the person must accept the license agreement first.
public required bool IsLicenseAgreementRequired { get; init; }
Property Value
IsProxySupported
Gets a value indicating whether the app's VPN can reach its server through proxies.
public required bool IsProxySupported { get; init; }
Property Value
IsQuicSupported
Gets a value indicating whether the app's VPN can use QUIC on this device.
public required bool IsQuicSupported { get; init; }
Property Value
IsRemoteAccessSupported
Gets a value indicating whether the app has a listener a phone can pair with; without it, the remote access's calls throw, so the UI hides the pairing.
public required bool IsRemoteAccessSupported { get; init; }
Property Value
IsRewardedAdSupported
Gets a value indicating whether the app has rewarded ads.
public required bool IsRewardedAdSupported { get; init; }
Property Value
IsSplitCountrySupported
Gets a value indicating whether this build has the IP-location data a split by country needs; without it, a country mode fails the connect, so the UI hides it.
public required bool IsSplitCountrySupported { get; init; }
Property Value
IsTv
Gets or sets a value indicating whether the device is a TV, which the UI is drawn for.
public required bool IsTv { get; set; }
Property Value
IsUserReviewSupported
Gets a value indicating whether the app has a store review to ask for.
public required bool IsUserReviewSupported { get; init; }
Property Value
KillSwitchOffScriptPath
Gets the path of the installer's script that lifts the kill switch's block with neither the service nor the app, which Linux's Kill Switch page prints as a command; null outside an install, and on Windows, whose page names the Start menu's entry.
public required string? KillSwitchOffScriptPath { get; init; }
Property Value
Links
Gets the app's links; a null link is one the UI hides.
public required AppLinks Links { get; init; }
Property Value
LogoAssetPath
Gets the path of the logo in the UI's store.
public required string LogoAssetPath { get; init; }
Property Value
OsType
Gets the operating system the app runs on.
public required AppOsType OsType { get; init; }
Property Value
PackageTitle
Gets the name without spaces that the release files, a desktop executable and its service, and the VPN adapter are called by.
public required string PackageTitle { get; init; }
Property Value
Premium
Gets this build's premium tier, or null where the product has none.
public required AppPremiumOptions? Premium { get; init; }
Property Value
Remarks
null is the full app, not a locked one: every premium feature allowed, nothing sold, and no page that promotes or bills, whatever the server's client policy offers. The premium code and the purchase address exist only inside a tier.
PrivacyConsentAssetName
Gets the name of the privacy consent's document in the UI's store, which the UI completes per language.
public required string PrivacyConsentAssetName { get; init; }
Property Value
ShowPoweredBy
Gets a value indicating whether the UI shows that the app is powered by VpnHood.
public required bool ShowPoweredBy { get; init; }
Property Value
UiTheme
Gets the theme's name, as blue or violet, which picks the UI's palette and its theme folder in the UI's store.
public required string UiTheme { get; init; }
Property Value
Version
Gets the app's version.
[JsonConverter(typeof(VersionConverter))]
public required Version Version { get; init; }