//################################################
// IEAK RSOP definitions
//################################################

//------------------------------------------------
// RSOP_IEAKPolicySetting
//------------------------------------------------
[
	Locale( 0x409 ),
	Description("Policy object for registry or Administrative Templates extension."
							"Policy settings in an .adm file involve settings values on registry"
							"keys which is abstracted by this class.") : Amended
]
class RSOP_IEAKPolicySetting : RSOP_PolicySetting
{
	//------------------------------------------------
	// Keys from RSOP_PolicySetting
	//------------------------------------------------
			[
				key,
				Description("Inherited from RSOP_PolicySetting.") : Amended,
				DisplayName("ID") : Amended
			]
	string id;

			[
				key,
				Description("Inherited from RSOP_PolicySetting.") : Amended,
				DisplayName("Precedence") : Amended
			]
	uint32 precedence;


	//------------------------------------------------
	// Preference Mode
	//------------------------------------------------
			[
				DisplayName("Preference Mode") : Amended
			]
	boolean preferenceMode = false;
	
	//------------------------------------------------
	// Displayed text customizations
	//------------------------------------------------
			[
				Description("Text that appears in the IE browser title bar, including the standard string \"Microsoft Internet Explorer provided by.\"") : Amended,
				DisplayName("Title Bar Text") : Amended
			]
	string titleBarText;

			[
				Description("Text that appears in the IE browser title bar after the standard string, \"Microsoft Internet Explorer provided by.\"") : Amended,
				DisplayName("Title Bar Custom Text") : Amended
			]
	string titleBarCustomText;

			[
				Description("String to be appended to the userAgent property value of the navigator object.") : Amended,
				DisplayName("User Agent Text") : Amended
			]
	string userAgentText;


	//------------------------------------------------
	// Custom Bitmaps, animated and toolbar
	//------------------------------------------------
			[
				Description("Path of the bitmap used as the background for the toolbar.") : Amended,
				DisplayName("Toolbar Background Bitmap Path") : Amended
			]
	string toolbarBackgroundBitmapPath;

			[
				DisplayName("Customize Animated Bitmaps") : Amended
			]
	boolean customizeAnimatedBitmaps;

			[
				DisplayName("Large Animated Bitmap Name") : Amended
			]
	string largeAnimatedBitmapName;

			[
				DisplayName("Large Animated Bitmap Path") : Amended
			]
	string largeAnimatedBitmapPath;

			[
				DisplayName("Small Animated Bitmap Name") : Amended
			]
	string smallAnimatedBitmapName;

			[
				DisplayName("Small Animated Bitmap Path") : Amended
			]
	string smallAnimatedBitmapPath;

			[
				DisplayName("Customize Logo Bitmaps") : Amended
			]
	boolean customizeLogoBitmaps;

			[
				DisplayName("Large Custom Logo Bitmap Name") : Amended
			]
	string largeCustomLogoBitmapName;

			[
				DisplayName("Large Custom Logo Bitmap Path") : Amended
			]
	string largeCustomLogoBitmapPath;

			[
				DisplayName("Small Custom Logo Bitmap Name") : Amended
			]
	string smallCustomLogoBitmapName;

			[
				DisplayName("Small Custom Logo Bitmap Path") : Amended
			]
	string smallCustomLogoBitmapPath;

			[
				DisplayName("Delete Existing Toolbar Buttons") : Amended
			]
	boolean deleteExistingToolbarButtons;

			[
				DisplayName("Delete Existing Toolbar Buttons") : Amended
			]
	sint32 toolbarButtons;


	//------------------------------------------------
	// Favorites and Links
	//------------------------------------------------
			[
				Description("") : Amended,
				DisplayName("Place Favorites At Top Of List") : Amended
			]
	boolean placeFavoritesAtTopOfList;

			[
				Description("") : Amended,
				DisplayName("Delete Existing Favorites") : Amended
			]
	boolean deleteExistingFavorites;

			[
				Description("") : Amended,
				DisplayName("Delete Admin Created Favorites Only") : Amended
			]
	boolean deleteAdminCreatedFavoritesOnly;

			[
				DisplayName("Custom Favorites") : Amended
			]
	sint32 customFavorites;

			[
				DisplayName("Custom Links") : Amended
			]
	sint32 customLinks;


	//------------------------------------------------
	// Channels and Categories
	//------------------------------------------------
			[
				Description("") : Amended,
				DisplayName("Delete Existing Channels") : Amended
			]
	boolean deleteExistingChannels;

			[
				Description("") : Amended,
				DisplayName("Enable Desktop Channel Bar By Default") : Amended
			]
	boolean enableDesktopChannelBarByDefault;

			[
				DisplayName("Channels") : Amended
			]
	sint32 channels;

			[
				DisplayName("Categories") : Amended
			]
	sint32 categories;


	//------------------------------------------------
	// Custom URLs
	//------------------------------------------------
			[
				Description("") : Amended,
				DisplayName("Home Page URL") : Amended
			]
	string homePageURL;

			[
				Description("") : Amended,
				DisplayName("Search Bar URL") : Amended
			]
	string searchBarURL;

			[
				Description("") : Amended,
				DisplayName("Online Help Page URL") : Amended
			]
	string onlineHelpPageURL;


	//------------------------------------------------
	// Security Zones & Content Ratings
	//------------------------------------------------
			[
				Description("If false, security zone settings are not customized.") : Amended,
				DisplayName("Import Security Zone Settings") : Amended
			]
	boolean importSecurityZoneSettings;

			[
				Description("Number of zones imported from another machine.") : Amended,
				DisplayName("Imported Zone Count") : Amended
			]
	uint32 importedZoneCount;


			[
				Description("If false, content ratings settings are not customized.") : Amended,
				DisplayName("Import Content Ratings Settings") : Amended
			]
	boolean importContentRatingsSettings;


	//------------------------------------------------
	// Authenticode Security Settings
	//------------------------------------------------
			[
				Description("If false, authenticode security information is not customized.") : Amended,
				DisplayName("Import Authenticode Security Info") : Amended
			]
	boolean importAuthenticodeSecurityInfo;

			[
				Description("If false, program settings are not customized.") : Amended,
				DisplayName("Enable Trusted Publisher Lockdown") : Amended
			]
	boolean enableTrustedPublisherLockdown;

	//------------------------------------------------
	// Programs
	//------------------------------------------------
			[
				Description("If false, program settings are not customized.") : Amended,
				DisplayName("Import Program Settings") : Amended
			]
	boolean importProgramSettings;

};


//------------------------------------------------
// RSOP_IEToolbarButton
//------------------------------------------------
[
	Locale( 0x409 ),
	Description("Toolbar button object for the IE browser, used for IEAK RSoP.") : Amended
]
class RSOP_IEToolbarButton
{
	//------------------------------------------------
	// Foreign Keys from RSOP_PolicySetting
	//------------------------------------------------
			[
				key,
				Description("Foreign key to RSOP_PolicySetting.") : Amended,
				DisplayName("RSOP ID") : Amended
			]
	string rsopID;

			[
				key,
				Description("Foreign key to RSOP_PolicySetting.") : Amended,
				DisplayName("RSOP Precedence") : Amended
			]
	uint32 rsopPrecedence;


	//------------------------------------------------
	// Properties dealing with toolbar buttons
	//------------------------------------------------
			[
				key,
				required,
				Description("Order of the button in a list.") : Amended,
				DisplayName("Button Order") : Amended
			]
	sint32 buttonOrder;

			[
				required,
				Description("Caption string is required.") : Amended,
				DisplayName("Caption") : Amended
			]
	string caption;

			[
				required,
				Description("Script file or executable to run when the button is pressed.") : Amended,
				DisplayName("Action Path") : Amended
			]
	string actionPath;

			[
				required,
				DisplayName("Icon Path") : Amended
			]
	string iconPath;

			[
				required,
				DisplayName("Hot Icon Path") : Amended
			]
	string hotIconPath;

			[
				DisplayName("Show On Toolbar By Default") : Amended
			]
	boolean showOnToolbarByDefault; 
};


//------------------------------------------------
// RSOP_IEToolbarButtonLink
// Comment: association between an IEAK policy setting and a custom browser toolbar button
//------------------------------------------------
[
	Locale( 0x409 ),
	Description("An association between an IEAK policy setting and a custom browser toolbar button.") : Amended,
	Association : ToInstance
]
class RSOP_IEToolbarButtonLink
{
			[
				key,
				Description("Reference to the RSOP_IEAKPolicySetting.") : Amended,
				DisplayName("Policy Setting") : Amended
			]
	RSOP_IEAKPolicySetting ref policySetting;

			[
				key,
				Description("Reference to the IE toolbar button.") : Amended,
				DisplayName("Toolbar Button") : Amended
			]
	RSOP_IEToolbarButton ref toolbarButton;
};


//------------------------------------------------
// RSOP_IEProxySettings
//------------------------------------------------
[
	Locale( 0x409 ),
	Description("Object which contains details of a proxy server connection.") : Amended
]
class RSOP_IEProxySettings
{
	//------------------------------------------------
	// Foreign Keys from RSOP_PolicySetting
	//------------------------------------------------
			[
				key,
				Description("Foreign key to RSOP_PolicySetting.") : Amended,
				DisplayName("RSOP ID") : Amended
			]
	string rsopID;

			[
				key,
				Description("Foreign key to RSOP_PolicySetting.") : Amended,
				DisplayName("RSOP Precedence") : Amended
			]
	uint32 rsopPrecedence;


	//------------------------------------------------
	// Properties dealing with proxy settings
	//------------------------------------------------
			[
				Description("Indicates whether to use proxy servers to for internet connections.") : Amended,
				DisplayName("Enable Proxy") : Amended
			]
	boolean enableProxy;

			[
				Description("Indicates whether to use the same proxy server for all protocols.") : Amended,
				DisplayName("Use Same Proxy") : Amended
			]
	boolean useSameProxy;

			[
				Description("HTTP proxy server address and port.") : Amended,
				DisplayName("HTTP Proxy Server") : Amended
			]
	string httpProxyServer;

			[
				Description("Do not use proxy server for addresses beginning with this string.  The value '<local>' means do not use a proxy server for local (intranet) addresses.") : Amended,
				DisplayName("Proxy Override") : Amended
			]
	string proxyOverride;

			[
				Description("FTP proxy server address and port.") : Amended,
				DisplayName("FTP Proxy Server") : Amended
			]
	string ftpProxyServer;

			[
				Description("Gopher proxy server address and port.") : Amended,
				DisplayName("Gopher Proxy Server") : Amended
			]
	string gopherProxyServer;

			[
				Description("Secure proxy server address and port.") : Amended,
				DisplayName("Secure Proxy Server") : Amended
			]
	string secureProxyServer;

			[
				Description("Socks proxy server address and port separated by a colon (and no space).") : Amended,
				DisplayName("Socks Proxy Server") : Amended
			]
	string socksProxyServer;
};


//------------------------------------------------
// RSOP_IEConnectionSettings
// TODO: populate with all the data, including key information
//------------------------------------------------
[
	Locale( 0x409 ),
	Description("Object which contains details of a connection to the Internet, including proxy settings.") : Amended
]
class RSOP_IEConnectionSettings : RSOP_IEProxySettings
{
	//------------------------------------------------
	// Auto configuration of browser
	//------------------------------------------------
			[
				Description("Path of the .INS file used for auto-configuration.") : Amended,
				DisplayName("Auto Configuration URL") : Amended
			]
	string autoConfigURL;

			[
				Description("Specifies whether the auto configuration settings (.INS) file is on the local machine.") : Amended,
				DisplayName("Auto Configuration Use Local") : Amended
			]
	boolean autoConfigUseLocal;

			[
				Description("Path of the .JS, .JVS, or .PAC file used for auto-configuration.") : Amended,
				DisplayName("Auto Configuration Proxy URL") : Amended
			]
	string autoProxyURL;

			[
				Description("Interval in minutes for when auto-configuration will happen.  A value of 0 means auto-config will only happen at browser startup and navigation time.") : Amended,
				DisplayName("Auto Configuration Time") : Amended
			]
	sint32 autoConfigTime;

			[
				Description("Automatically detect configuration settings.") : Amended,
				DisplayName("Auto Detect Configuration Settings") : Amended
			]
	boolean autoDetectConfigSettings;

			[
				Description("Auto configuration allows you to make updates to a user's machine after deployment.") : Amended,
				DisplayName("Auto Configuration Enable") : Amended
			]
	boolean autoConfigEnable;


	//------------------------------------------------
	// Other connection settings
	//------------------------------------------------
			[
				Description("If false, connection settings are not customized.") : Amended,
				DisplayName("Import Current Connection Settings") : Amended
			]
	boolean importCurrentConnSettings;

			[
				Description("Deletes any existing connection settings.") : Amended,
				DisplayName("Delete Existing Connection Settings") : Amended
			]
	boolean deleteExistingConnSettings;

			[
				Description("") : Amended,
				DisplayName("Default Dial Up Connection") : Amended
			]
	string defaultDialUpConnection;

			[
				Description("DialUpState is a string indicating when the default connection should be dialed:"
										"0 = never,"
										"1 = when a network connection is not present,"
										"2 = always.") : Amended,
				Values{"Never dial a connection", "Dial whenever a network connection is not present", "Always dial my default connection"} : Amended,
				ValueMap{"0", "1", "2"} : Amended,
				DisplayName("Dial Up State") : Amended
			]
	uint8 dialUpState;

			[
				Description("Array of names of dial-up connections to be imported.") : Amended,
				DisplayName("Dial Up Connections") : Amended
			]
	string dialUpConnections[];
};


//------------------------------------------------
// RSOP_IEConnectionSettingsLink
// Comment: association between an IEAK policy setting and its connection settings
//------------------------------------------------
[
	Locale( 0x409 ),
	Description("Proxy settings object for the IE browser, used for IEAK RSoP.") : Amended,
	Association: ToInstance
]
class RSOP_IEConnectionSettingsLink
{
			[
				key,
				Description("Reference to the RSOP_IEAKPolicySetting.") : Amended,
				DisplayName("Policy Setting") : Amended
			]
	RSOP_IEAKPolicySetting ref policySetting;

			[
				key,
				Description("Reference to the proxy settings.") : Amended,
				DisplayName("Proxy Settings") : Amended
			]
	RSOP_IEConnectionSettings ref connectionSettings;
};


//------------------------------------------------
// RSOP_IEFavoriteOrLinkItem
//------------------------------------------------
[
	abstract,
	Locale( 0x409 ),
	Description("Parent class object from which favorites, favorite folders, and links are inherited.") : Amended
]
class RSOP_IEFavoriteOrLinkItem
{
			[
				Description("Order of the item in a list.") : Amended,
				DisplayName("Order") : Amended
			]
	sint32 order;

			[
				DisplayName("Name") : Amended
			]
	string name;

			[
				DisplayName("URL") : Amended
			]
	string url;

			[
				DisplayName("Icon Path") : Amended
			]
	string iconPath;

			[
				DisplayName("Make Available Offline") : Amended
			]
	boolean makeAvailableOffline;
};


//------------------------------------------------
// RSOP_IEFavoriteItem
//------------------------------------------------
[
	Locale( 0x409 ),
	Description("") : Amended
]
class RSOP_IEFavoriteItem : RSOP_IEFavoriteOrLinkItem
{
	//------------------------------------------------
	// Foreign Keys from RSOP_PolicySetting
	//------------------------------------------------
			[
				key,
				Description("Foreign key to RSOP_PolicySetting.") : Amended,
				DisplayName("RSOP ID") : Amended
			]
	string rsopID;

			[
				key,
				Description("Foreign key to RSOP_PolicySetting.") : Amended,
				DisplayName("RSOP Precedence") : Amended
			]
	uint32 rsopPrecedence;

	//------------------------------------------------
	// Properties dealing with favorite items
	//------------------------------------------------
			[
				key,
				Description("Name of the item with all parent folders preceding it in the same format"
										" as that of folders preceding a file.") : Amended,
				DisplayName("Name") : Amended
			]
	string name;

			[
				Description("Name of the item without its preceding parent folders.") : Amended,
				DisplayName("Short Name") : Amended
			]
	string shortName;

			[
				DisplayName("Folder Item") : Amended
			]
	boolean folderItem;

			[
				DisplayName("Parent Path") : Amended
			]
	string parentPath;
};

//------------------------------------------------
// RSOP_IELinkItem
//------------------------------------------------
[
	Locale( 0x409 ),
	Description("") : Amended
]
class RSOP_IELinkItem : RSOP_IEFavoriteOrLinkItem
{
	//------------------------------------------------
	// Foreign Keys from RSOP_PolicySetting
	//------------------------------------------------
			[
				key,
				Description("Foreign key to RSOP_PolicySetting.") : Amended,
				DisplayName("RSOP ID") : Amended
			]
	string rsopID;

			[
				key,
				Description("Foreign key to RSOP_PolicySetting.") : Amended,
				DisplayName("RSOP Precedence") : Amended
			]
	uint32 rsopPrecedence;

	//------------------------------------------------
	// Properties dealing with link items
	//------------------------------------------------
			[
				key,
				DisplayName("Name") : Amended
			]
	string name;
};


//------------------------------------------------
// RSOP_IEFavoriteItemLink
// Comment: association between an IEAK policy setting and a favorite or favorites folder item
//------------------------------------------------
[
	Locale( 0x409 ),
	Description("IE favorites and favorite folders, used for IEAK RSoP.") : Amended,
	Association: ToInstance
]
class RSOP_IEFavoriteItemLink
{
			[
				key,
				Description("Reference to the RSOP_IEAKPolicySetting.") : Amended,
				DisplayName("Policy Setting") : Amended
			]
	RSOP_IEAKPolicySetting ref policySetting;

			[
				key,
				Description("Reference to the favorite item.") : Amended,
				DisplayName("Favorite Item") : Amended
			]
	RSOP_IEFavoriteItem ref favoriteItem;
};


//------------------------------------------------
// RSOP_IELinkItemLink
// Comment: association between an IEAK policy setting and a link.
//------------------------------------------------
[
	Locale( 0x409 ),
	Description("IE links, used for IEAK RSoP.") : Amended,
	Association: ToInstance
]
class RSOP_IELinkItemLink
{
			[
				key,
				Description("Reference to the RSOP_IEAKPolicySetting.") : Amended,
				DisplayName("Policy Setting") : Amended
			]
	RSOP_IEAKPolicySetting ref policySetting;

			[
				key,
				Description("Reference to the link item.") : Amended,
				DisplayName("Link Item") : Amended
			]
	RSOP_IELinkItem ref linkItem;
};


//------------------------------------------------
// RSOP_IEProgramSettings
// TODO: populate with all the data, including key information
//------------------------------------------------
[
	Locale( 0x409 ),
	Description("Object which contains details of program associations for IE.") : Amended
]
class RSOP_IEProgramSettings
{
	//------------------------------------------------
	// Foreign Keys from RSOP_PolicySetting
	//------------------------------------------------
			[
				key,
				Description("Foreign key to RSOP_PolicySetting.") : Amended,
				DisplayName("RSOP ID") : Amended
			]
	string rsopID;

			[
				key,
				Description("Foreign key to RSOP_PolicySetting.") : Amended,
				DisplayName("RSOP Precedence") : Amended
			]
	uint32 rsopPrecedence;


	//------------------------------------------------
	// Properties dealing with program settings
	//------------------------------------------------
			[
				Description("Specifies the HTML editing program you want to use with Internet Explorer.") : Amended,
				DisplayName("HTMLEditorProgram") : Amended
			]
	string htmlEditorProgram;

			[
				Description("") : Amended,
				DisplayName("HTML Editor HKCU Registry Data") : Amended
			]
	string htmlEditorHKCURegData;

			[
				Description("") : Amended,
				DisplayName("HTML Editor HKLM Registry Data") : Amended
			]
	string htmlEditorHKLMRegData;

			[
				Description("Specifies the Internet e-mail program you want to use with Internet Explorer.") : Amended,
				DisplayName("Email Program") : Amended
			]
	string emailProgram;

			[
				Description("Specifies the Internet newsreader program you want to use with Internet Explorer.") : Amended,
				DisplayName("Newsgroups Program") : Amended
			]
	string newsgroupsProgram;

			[
				Description("Specifies the Internet call program you want to use with Internet Explorer.") : Amended,
				DisplayName("Internet Call Program") : Amended
			]
	string internetCallProgram;

			[
				Description("Specifies the Internet calendar program you want to use with Internet Explorer.") : Amended,
				DisplayName("Calendar Program") : Amended
			]
	string calendarProgram;

			[
				Description("Specifies the Internet contacts or address-book program you want to use with Internet Explorer.") : Amended,
				DisplayName("Contact List Program") : Amended
			]
	string contactListProgram;

			[
				Description("Specifies whether you want Internet Explorer to remain your default Internet browser,"
										" even if you install additional Internet browsing software.  When this check box is "
										"selected, each time Internet Explorer starts it checks to make sure it is still "
										"registered as the default Internet browser. If another program is registered as the "
										"default browser, Internet Explorer asks whether you want to restore Internet Explorer "
										"as your default browser.") : Amended,
				DisplayName("Check If IE Is Default Browser") : Amended
			]
	boolean checkIfIEIsDefaultBrowser;

			[
				Description("") : Amended,
				DisplayName("Use Internet Explorer For FTP") : Amended
			]
	boolean useIEForFTP;
};


//------------------------------------------------
// RSOP_IEImportedProgramSettings
// Comment: association between an IEAK policy setting and its imported program settings
//------------------------------------------------
[
	Locale( 0x409 ),
	Description("Program settings object for the IE browser, used for IEAK RSoP.") : Amended,
	Association: ToInstance
]
class RSOP_IEImportedProgramSettings
{
			[
				key,
				Description("Reference to the RSOP_IEAKPolicySetting.") : Amended,
				DisplayName("Policy Setting") : Amended
			]
	RSOP_IEAKPolicySetting ref policySetting;

			[
				key,
				Description("Reference to the imported program settings.") : Amended,
				DisplayName("Program Settings") : Amended
			]
	RSOP_IEProgramSettings ref programSettings;
};


//------------------------------------------------
// RSOP_IEConnectionDialUpSettings
// Comment: settings obtained from rasphone.pbk
//------------------------------------------------
[
	Locale( 0x409 ),
	Description("Object which contains details for dialing up to the internet.  Corresponds "
				"to the RASENTRY structure") : Amended
]
class RSOP_IEConnectionDialUpSettings
{
	//------------------------------------------------
	// Foreign Keys from RSOP_PolicySetting
	//------------------------------------------------
			[
				key,
				Description("Foreign key to RSOP_PolicySetting.") : Amended,
				DisplayName("RSOP ID") : Amended
			]
	string rsopID;

			[
				key,
				Description("Foreign key to RSOP_PolicySetting.") : Amended,
				DisplayName("RSOP Precedence") : Amended
			]
	uint32 rsopPrecedence;


	//------------------------------------------------
	// Properties dealing with dial-up settings
	//------------------------------------------------
			[
				key,
				Description("Unique name of a location from which the internet can be dialed.") : Amended,
				DisplayName("Connection Name") : Amended
			]
	string connectionName;

			[
				Description("") : Amended,
				DisplayName("Alternate Phone Numbers") : Amended
			]
	string alternatePhoneNumbers;

			[
				Description("") : Amended,
				DisplayName("Alternate Offset") : Amended
			]
	uint32 alternateOffset;

			[
				Description("") : Amended,
				DisplayName("Area Code") : Amended
			]
	string areaCode;

			[
				Description("") : Amended,
				DisplayName("Auto Dial Dll") : Amended
			]
	string autoDialDll;

			[
				Description("") : Amended,
				DisplayName("Auto Dial Function") : Amended
			]
	string autoDialFunction;

			[
				Description("") : Amended,
				DisplayName("Channels") : Amended
			]
	uint32 channels;

			[
				Description("") : Amended,
				DisplayName("Country Code") : Amended
			]
	uint32 countryCode;

			[
				Description("") : Amended,
				DisplayName("Country ID") : Amended
			]
	uint32 countryID;

			[
				Description("") : Amended,
				DisplayName("Custom Authentication Key") : Amended
			]
	uint32 customAuthenticationKey;

			[
				Description("") : Amended,
				DisplayName("Custom Dial Dll") : Amended
			]
	string customDialDll;

			[
				Description("") : Amended,
				DisplayName("Device Name") : Amended
			]
	string deviceName;

			[
				Description("") : Amended,
				DisplayName("Device Type") : Amended
			]
	string deviceType;

			[
				Description("") : Amended,
				DisplayName("Dial Extra Percent") : Amended
			]
	uint32 dialExtraPercent;

			[
				Description("") : Amended,
				DisplayName("Dial Extra Sample Seconds") : Amended
			]
	uint32 dialExtraSampleSeconds;

			[
				Description("") : Amended,
				DisplayName("Dial Mode") : Amended
			]
	uint32 dialMode;

			[
				Description("") : Amended,
				DisplayName("Encryption Type") : Amended
			]
	uint32 encryptionType;

			[
				Description("") : Amended,
				DisplayName("Frame Size") : Amended
			]
	uint32 frameSize;

			[
				Description("") : Amended,
				DisplayName("Framing Protocol") : Amended
			]
	uint32 framingProtocol;

			[
				Description("") : Amended,
				DisplayName("GUID ID") : Amended
			]
	string guidID;

			[
				Description("") : Amended,
				DisplayName("Hang Up Extra Percent") : Amended
			]
	uint32 hangUpExtraPercent;

			[
				Description("") : Amended,
				DisplayName("Hang Up Extra Sample Seconds") : Amended
			]
	uint32 hangUpExtraSampleSeconds;

			[
				Description("") : Amended,
				DisplayName("Idle Disconnect Seconds") : Amended
			]
	uint32 idleDisconnectSeconds;

			[
				Description("") : Amended,
				DisplayName("IP Address") : Amended
			]
	string ipAddress;

			[
				Description("") : Amended,
				DisplayName("IP DNS Address") : Amended
			]
	string ipDNSAddress;

			[
				Description("") : Amended,
				DisplayName("IP DNS Address Alternate") : Amended
			]
	string ipDNSAddressAlternate;

			[
				Description("") : Amended,
				DisplayName("IP WINS Address") : Amended
			]
	string ipWINSAddress;

			[
				Description("") : Amended,
				DisplayName("IP WINS Address Alternate") : Amended
			]
	string ipWINSAddressAlternate;

			[
				Description("") : Amended,
				DisplayName("Local Phone Number") : Amended
			]
	string localPhoneNumber;

			[
				Description("") : Amended,
				DisplayName("Net Protocols") : Amended
			]
	uint32 netProtocols;

			[
				Description("") : Amended,
				DisplayName("Options") : Amended
			]
	uint32 options;

			[
				Description("") : Amended,
				DisplayName("Options 2") : Amended
			]
	uint32 options2;

			[
				Description("") : Amended,
				DisplayName("Options 3") : Amended
			]
	uint32 options3;

			[
				Description("") : Amended,
				DisplayName("RAS Entry Data") : Amended
			]
	uint8 rasEntryData[];

			[
				Description("") : Amended,
				DisplayName("RAS Entry Data Size") : Amended
			]
	uint32 rasEntryDataSize;

			[
				Description("") : Amended,
				DisplayName("Reserved Field #1") : Amended
			]
	uint32 reserved1;

			[
				Description("") : Amended,
				DisplayName("Reserved Field #2") : Amended
			]
	uint32 reserved2;

			[
				Description("") : Amended,
				DisplayName("Script File") : Amended
			]
	string scriptFile;

			[
				Description("") : Amended,
				DisplayName("Sub-Entries") : Amended
			]
	uint32 subEntries;

			[
				Description("") : Amended,
				DisplayName("Type") : Amended
			]
	uint32 type;

			[
				Description("") : Amended,
				DisplayName("VPN Strategy") : Amended
			]
	sint32 vpnStrategy;

			[
				Description("") : Amended,
				DisplayName("Windows Version") : Amended
			]
	uint32 windowsVersion;

			[
				Description("") : Amended,
				DisplayName("X25 Address") : Amended
			]
	string x25Address;

			[
				Description("") : Amended,
				DisplayName("X25 Facilities") : Amended
			]
	string x25Facilities;

			[
				Description("") : Amended,
				DisplayName("X25 Pad Type") : Amended
			]
	string x25PadType;

			[
				Description("") : Amended,
				DisplayName("X25 User Data") : Amended
			]
	string x25UserData;
};


//------------------------------------------------
// RSOP_IEConnectionDialUpSettingsLink
// Comment: association between an IEAK policy setting and its imported program settings
//------------------------------------------------
[
	Locale( 0x409 ),
	Description("Dial-up settings for a given IE internet connection , used for IEAK RSoP.") : Amended,
	Association: ToInstance
]
class RSOP_IEConnectionDialUpSettingsLink
{
			[
				key,
				Description("Reference to the RSOP_IEAKPolicySetting.") : Amended,
				DisplayName("Policy Setting") : Amended
			]
	RSOP_IEAKPolicySetting ref policySetting;

			[
				key,
				Description("Reference to the dial-up connection settings.") : Amended,
				DisplayName("Dial Up Settings") : Amended
			]
	RSOP_IEConnectionDialUpSettings ref dialUpSettings;
};


//------------------------------------------------
// RSOP_IEConnectionDialUpCredentials
// Comment: settings used by RasDial to establish a remote access connection.
//------------------------------------------------
[
	Locale( 0x409 ),
	Description("Object which contains details for a phone number used for dialing up to the internet.") : Amended
]
class RSOP_IEConnectionDialUpCredentials
{
	//------------------------------------------------
	// Foreign Keys from RSOP_PolicySetting
	//------------------------------------------------
			[
				key,
				Description("Foreign key to RSOP_PolicySetting.") : Amended,
				DisplayName("RSOP ID") : Amended
			]
	string rsopID;

			[
				key,
				Description("Foreign key to RSOP_PolicySetting.") : Amended,
				DisplayName("RSOP Precedence") : Amended
			]
	sint32 rsopPrecedence;


	//------------------------------------------------
	// Properties dealing with dial-up credentials
	//------------------------------------------------
			[
				key,
				Description("Unique name of a location from which the internet can be dialed.") : Amended,
				DisplayName("Connection Name") : Amended
			]
	string connectionName;

			[
				Description("") : Amended,
				DisplayName("Callback ID") : Amended
			]
	uint32 callbackID;

			[
				Description("") : Amended,
				DisplayName("Callback Number") : Amended
			]
	string callbackNumber;

			[
				Description("") : Amended,
				DisplayName("Domain") : Amended
			]
	string domain;

			[
				Description("") : Amended,
				DisplayName("Entry Name") : Amended
			]
	string entryName;

			[
				Description("") : Amended,
				DisplayName("Password") : Amended
			]
	string password;

			[
				Description("") : Amended,
				DisplayName("Phone Number") : Amended
			]
	string phoneNumber;

			[
				Description("") : Amended,
				DisplayName("RAS Dial Params Data") : Amended
			]
	uint8 rasDialParamsData[];

			[
				Description("") : Amended,
				DisplayName("Size") : Amended
			]
	uint32 rasDialParamsDataSize;

			[
				Description("") : Amended,
				DisplayName("Sub Entry") : Amended
			]
	uint32 subEntry;

			[
				Description("") : Amended,
				DisplayName("User Name") : Amended
			]
	string userName;

			[
				Description("") : Amended,
				DisplayName("Windows Version") : Amended
			]
	uint32 windowsVersion;
};

//------------------------------------------------
// RSOP_IEConnectionDialUpCredentialsLink
// Comment: association between an IEAK policy setting and its imported program settings
//------------------------------------------------
[
	Locale( 0x409 ),
	Description("Dial-up credentials for a given IE internet connection , used for IEAK RSoP.") : Amended,
	Association: ToInstance
]
class RSOP_IEConnectionDialUpCredentialsLink
{
			[
				key,
				Description("Reference to the RSOP_IEAKPolicySetting.") : Amended,
				DisplayName("Policy Setting") : Amended
			]
	RSOP_IEAKPolicySetting ref policySetting;

			[
				key,
				Description("Reference to the dial-up connection credentials.") : Amended,
				DisplayName("Dial Up Settings") : Amended
			]
	RSOP_IEConnectionDialUpCredentials ref dialUpCredentials;
};


//------------------------------------------------
// RSOP_IEConnectionWinINetSettings
// Comment: settings used by RasDial to establish a remote access connection.
//------------------------------------------------
[
	Locale( 0x409 ),
	Description("Object which contains details for WinINet internet connection settings for a given connection.") : Amended
]
class RSOP_IEConnectionWinINetSettings
{
	//------------------------------------------------
	// Foreign Keys from RSOP_PolicySetting
	//------------------------------------------------
			[
				key,
				Description("Foreign key to RSOP_PolicySetting.") : Amended,
				DisplayName("RSOP ID") : Amended
			]
	string rsopID;

			[
				key,
				Description("Foreign key to RSOP_PolicySetting.") : Amended,
				DisplayName("RSOP Precedence") : Amended
			]
	sint32 rsopPrecedence;


	//------------------------------------------------
	// Properties dealing with WinINet settings
	//------------------------------------------------
			[
				key,
				Description("Unique name of a location from which the internet can be dialed.") : Amended,
				DisplayName("Connection Name") : Amended
			]
	string connectionName;

			[
				Description("") : Amended,
				DisplayName("Internet Per Connection Option List Data") : Amended
			]
	uint8 internetPerConnOptionListData[];

			[
				Description("") : Amended,
				DisplayName("Internet Per Connection Option List Data Size") : Amended
			]
	uint32 internetPerConnOptionListDataSize;
};


//------------------------------------------------
// RSOP_IEConnectionWinINetSettingsLink
// Comment: association between an IEAK policy setting and its imported program settings
//------------------------------------------------
[
	Locale( 0x409 ),
	Description("Dial-up credentials for a given IE internet connection , used for IEAK RSoP.") : Amended,
	Association: ToInstance
]
class RSOP_IEConnectionWinINetSettingsLink
{
			[
				key,
				Description("Reference to the RSOP_IEAKPolicySetting.") : Amended,
				DisplayName("Policy Setting") : Amended
			]
	RSOP_IEAKPolicySetting ref policySetting;

			[
				key,
				Description("Reference to the dial-up connection credentials.") : Amended,
				DisplayName("Dial Up Settings") : Amended
			]
	RSOP_IEConnectionWinINetSettings ref winINetSettings;
};


//------------------------------------------------
// RSOP_IESecurityZoneSettings
// Comment: settings imported for a particular zone, includes data retrieved in
// the ZONEATTRIBUTES structure via IInternetZoneManager::GetZoneAttributes and
// data retrieved via IInternetSecurityManager::GetZoneMappings.
//------------------------------------------------
[
	Locale( 0x409 ),
	Description("Object which contains details for security zone attributes for a given zone.") : Amended
]
class RSOP_IESecurityZoneSettings
{
	//------------------------------------------------
	// Foreign Keys from RSOP_PolicySetting
	//------------------------------------------------
			[
				key,
				Description("Foreign key to RSOP_PolicySetting.") : Amended,
				DisplayName("RSOP ID") : Amended
			]
	string rsopID;

			[
				key,
				Description("Foreign key to RSOP_PolicySetting.") : Amended,
				DisplayName("RSOP Precedence") : Amended
			]
	sint32 rsopPrecedence;


	//------------------------------------------------
	// Properties dealing with zone attributes
	//------------------------------------------------

			[
				key,
				Description("") : Amended,
				DisplayName("Zone Index") : Amended
			]
	uint32 zoneIndex;

			[
				key,
				Description("") : Amended,
				DisplayName("Use HKLM") : Amended
			]
	boolean useHKLM;

			[
				Description("Display name of the zone.") : Amended,
				DisplayName("Display Name") : Amended
			]
	string displayName;

			[
				Description("Description of the zone.") : Amended,
				DisplayName("Description") : Amended
			]
	string description;

			[
				Description("Path to the icon associated with this zone.") : Amended,
				DisplayName("Icon Path") : Amended
			]
	string iconPath;

			[
				Description("") : Amended,
				DisplayName("Minimum Template Level") : Amended
			]
	uint32 minimumTemplateLevel;

			[
				Description("") : Amended,
				DisplayName("Recommended Template Level") : Amended
			]
	uint32 recommendedTemplateLevel;

			[
				Description("") : Amended,
				DisplayName("Current Template Level") : Amended
			]
	uint32 currentTemplateLevel;

			[
				Description("Flags associated with the specified zone. This can be one of the ZAFLAGS values.") : Amended,
				DisplayName("Flags") : Amended
			]
	uint32 flags;

			[
				Description("") : Amended,
				DisplayName("Zone Mappings") : Amended
			]
	string zoneMappings[];

			[
				Description("") : Amended,
				DisplayName("Action Values") : Amended
			]
	string actionValues[];
};


//------------------------------------------------
// RSOP_IEPrivacySettings
// Comment: privacy settings imported for the 'internet' security zone.
//------------------------------------------------
[
	Locale( 0x409 ),
	Description("Object which contains details for privacy attributes for the 'internet' security zone.") : Amended
]
class RSOP_IEPrivacySettings
{
	//------------------------------------------------
	// Foreign Keys from RSOP_PolicySetting
	//------------------------------------------------
			[
				key,
				Description("Foreign key to RSOP_PolicySetting.") : Amended,
				DisplayName("RSOP ID") : Amended
			]
	string rsopID;

			[
				key,
				Description("Foreign key to RSOP_PolicySetting.") : Amended,
				DisplayName("RSOP Precedence") : Amended
			]
	sint32 rsopPrecedence;


	//------------------------------------------------
	// Privacy settings properties
	//------------------------------------------------
			[
				Description("") : Amended,
				DisplayName("First Party Privacy Type") : Amended
			]
	uint32 firstPartyPrivacyType;

			[
				Description("") : Amended,
				DisplayName("First Party Privacy Type Text") : Amended
			]
	string firstPartyPrivacyTypeText;

			[
				Description("") : Amended,
				DisplayName("Third Party Privacy Type") : Amended
			]
	uint32 thirdPartyPrivacyType;

			[
				Description("") : Amended,
				DisplayName("Third Party Privacy Type Text") : Amended
			]
	string thirdPartyPrivacyTypeText;

			[
				Description("") : Amended,
				DisplayName("Use Advanced Settings") : Amended
			]
	boolean useAdvancedSettings;
};


//------------------------------------------------
// RSOP_IESecurityContentRatings
// Comment: content ratings settings imported from another machine.
//------------------------------------------------
[
	Locale( 0x409 ),
	Description("Object which contains details for security content ratings settings.") : Amended
]
class RSOP_IESecurityContentRatings
{
	//------------------------------------------------
	// Foreign Keys from RSOP_PolicySetting
	//------------------------------------------------
			[
				key,
				Description("Foreign key to RSOP_PolicySetting.") : Amended,
				DisplayName("RSOP ID") : Amended
			]
	string rsopID;

			[
				key,
				Description("Foreign key to RSOP_PolicySetting.") : Amended,
				DisplayName("RSOP Precedence") : Amended
			]
	sint32 rsopPrecedence;


	//------------------------------------------------
	// Properties dealing with zone attributes
	//------------------------------------------------

			[
				Description("") : Amended,
				DisplayName("Rating Systems") : Amended
			]
	string ratingSystems[];

			[
				Description("") : Amended,
				DisplayName("Rating System File Names") : Amended
			]
	string ratingSystemFileNames[];

			[
				Description("") : Amended,
				DisplayName("Always Viewable Sites") : Amended
			]
	string alwaysViewableSites[];

			[
				Description("") : Amended,
				DisplayName("Never Viewable Sites") : Amended
			]
	string neverViewableSites[];

			[
				Description("") : Amended,
				DisplayName("View Unknown Rated Sites") : Amended
			]
	boolean viewUnknownRatedSites;

			[
				Description("") : Amended,
				DisplayName("Password Override Enabled") : Amended
			]
	boolean passwordOverrideEnabled;

			[
				Description("") : Amended,
				DisplayName("Selected Ratings Bureau") : Amended
			]
	string selectedRatingsBureau;
};


//------------------------------------------------
// RSOP_IEAdministrativeTemplateFile
// Comment: Abtraction for adminstrative templates file
//------------------------------------------------
[
    Locale( 0x409 ), 
    Description("Administrative Template File")  
]
class RSOP_IEAdministrativeTemplateFile
{
            [
                key,
                Description("File name, including path, of administrative template file"), Read,
                DisplayName("Name")  
            ]
    string name;

            [
                key,
                Description("Identifies the GPO that contains this Policy Object"), Read,
                DisplayName("GPO ID")  
            ]
    string GPOID;

             [
                Description("Time the administrative template file was last written"), Read, 
                DisplayName("Last Write Time")  
            ]
    datetime lastWriteTime;
};

//------------------------------------------------
// RSOP_IERegistryPolicySetting
// Comment: Abtraction for registry extension policy data
//------------------------------------------------
[
    Locale( 0x409 ), 
    Description("Policy object for registry or Administrative Templates extension."
                "Policy settings in an .adm file involve settings values on registry"
                "keys which is abstracted by this class.")  
]
class RSOP_IERegistryPolicySetting : RSOP_PolicySetting
{
            [
                key,
                Description("Inherited from RSOP_PolicySetting"), Read,
                DisplayName("ID")  
            ]
    string id;

            [
                key,
                Description("Inherited from RSOP_PolicySetting"), Read,
                DisplayName("Precedence")  
            ]
    uint32 precedence;

            [
				key,
                Description("Registry key is under the HKEY_CURRENT_USER hive,  Theoretically, if "
							"this is false, the class instance should be stored in a separate "
							"namespace than those under the current user, but the IEAK ADM file "
							"design necessitates they exist in the same namespace."), Read,
                DisplayName("Current User")  
            ]
    boolean currentUser = true;

            [
                Description("Name of the registry key,"), Read,
                DisplayName("Registry Key")  
            ]
    string registryKey = "";

            [
                Description("Name of registry value"), Read,
                DisplayName("Value Name")  
            ]
    string valueName = "";

            [
                Description("Data type of value, which corresponds to registry "
				"value types such as REG_SZ."), Read,
                DisplayName("Type")  
            ]
    uint32 valueType = 0;

            [
                Description("Value represented by an array of bytes"), Read,  
                DisplayName("Value")  
            ]
    uint8  value[];

            [
                Description("Indicates whether the registry key, or registry value "
				"has been deleted."), Read,
                DisplayName("Is Deleted")  
            ]
    boolean deleted = false;

            [
                Description("Command being run on the key, or value."), Read,
                DisplayName("Command")  
            ]
    string command = "";
};


//------------------------------------------------
// RSOP_IEAuthenticodeCertificate
// Comment: content ratings settings imported from another machine.
//------------------------------------------------
[
	Locale( 0x409 ),
	Description("Object which contains details for security authenticode certificates.") : Amended
]
class RSOP_IEAuthenticodeCertificate
{
	//------------------------------------------------
	// Foreign Keys from RSOP_PolicySetting
	//------------------------------------------------
			[
				key,
				Description("Foreign key to RSOP_PolicySetting.") : Amended,
				DisplayName("RSOP ID") : Amended
			]
	string rsopID;

			[
				key,
				Description("Foreign key to RSOP_PolicySetting.") : Amended,
				DisplayName("RSOP Precedence") : Amended
			]
	sint32 rsopPrecedence;


	//------------------------------------------------
	// Properties dealing with authenticode certificates
	//------------------------------------------------

			[
				key,
				Description("") : Amended,
				DisplayName("Tab Index") : Amended
			]
	sint32 tabIndex;

			[
				key,
				Description("") : Amended,
				DisplayName("Arbitrary Certificate Index") : Amended
			]
	sint32 certIndex;

			[
				Description("") : Amended,
				DisplayName("Subject Name") : Amended
			]
	string subjectName;

			[
				Description("") : Amended,
				DisplayName("Issuer Name") : Amended
			]
	string issuerName;

			[
				Description("") : Amended,
				DisplayName("Expiration Date") : Amended
			]
	datetime expirationDate;

			[
				Description("") : Amended,
				DisplayName("Friendly Name") : Amended
			]
	string friendlyName;

			[
				Description("") : Amended,
				DisplayName("Intended Purposes") : Amended
			]
	string intendedPurposes;
};


//################################################
// end of IEAK RSOP definitions
//################################################
