[ClassVersion("1.0.0.0"), FriendlyName("SqlRSSetup")]
class DSC_SqlRSSetup : OMI_BaseResource
{
    [Key, Description("Name of the _Microsoft SQL Server Reporting Service_ instance to installed. This can only be set to `'SSRS'`."), ValueMap{"SSRS"}, Values{"SSRS"}] String InstanceName;
    [Required, Description("Accept licens terms. This must be set to `'Yes'`."), ValueMap{"Yes"}, Values{"Yes"}] String IAcceptLicenseTerms;
    [Required, Description("The path to the installation media file to be used for installation, e.g an UNC path to a shared resource. Environment variables can be used in the path.")] String SourcePath;
    [Write, Description("The action to be performed. Default value is `'Install'` which performs either install or upgrade."), ValueMap{"Install","Uninstall"}, Values{"Install","Uninstall"}] String Action;
    [Write, EmbeddedInstance("MSFT_Credential"), Description("Credentials used to access the path set in the parameter **SourcePath**.")] String SourceCredential;
    [Write, Description("Suppresses any attempts to restart.")] Boolean SuppressRestart;
    [Write, Description("Sets the custom license key, e.g. `'12345-12345-12345-12345-12345'`. This parameter is mutually exclusive with the parameter **Edition**.")] String ProductKey;
    [Write, Description("Forces a restart after installation is finished. If set to `$true` then it will override the parameter **SuppressRestart**.")] Boolean ForceRestart;
    [Write, Description("Upgrades the edition of the installed product. Requires that either the **ProductKey** or the **Edition** parameter is also assigned. By default no edition upgrade is performed.")] Boolean EditionUpgrade;
    [Write, Description("Upgrades installed product version if the major product version of the source executable is higher than the currently installed major version. Requires that either the **ProductKey** or the **Edition** parameter is also assigned. Default is `$false`.")] Boolean VersionUpgrade;
    [Write, Description("Sets the custom free edition. This parameter is mutually exclusive with the parameter **ProductKey**."), ValueMap{"Development","Evaluation","ExpressAdvanced"}, Values{"Development","Evaluation","ExpressAdvanced"}] String Edition;
    [Write, Description("Specifies the setup log file location, e.g. `log.txt`. By default log files are created under `%TEMP%`.")] String LogPath;
    [Write, Description("Sets the install folder, e.g. `C:\\Program Files\\SSRS`. Default value is `C:\\Program Files\\Microsoft SQL Server Reporting Services`.")] String InstallFolder;
    [Write, Description("The timeout, in seconds, to wait for the setup process to finish. Default value is `7200` seconds (2 hours). If the setup process does not finish before this time an error will be thrown.")] UInt32 SetupProcessTimeout;
    [Read, Description("Returns the path to error dump log files.")] String ErrorDumpDirectory;
    [Read, Description("Returns the current version of the installed _Microsoft SQL Server Reporting Service_ instance.")] String CurrentVersion;
    [Read, Description("Returns the current name of the _Microsoft SQL Server Reporting Service_ instance _Windows_ service.")] String ServiceName;
};
