DSCResources/MSFT_Website/MSFT_Website.schema.mof

[ClassVersion("1.0.0")]
class MSFT_WebBindingInformation
{
    [Required,ValueMap{"http","https","msmq.formatname","net.msmq","net.pipe","net.tcp"},Values{"http","https","msmq.formatname","net.msmq","net.pipe","net.tcp"}] String Protocol;
    [Write] String BindingInformation;
    [Write] String IPAddress;
    [Write] UInt16 Port;
    [Write] String HostName;
    [Write] String CertificateThumbprint;
    [Write,ValueMap{"My", "WebHosting"},Values{"My", "WebHosting"}] String CertificateStoreName;
    [Write,ValueMap{"0","1","2","3"},Values{"0","1","2","3"}] String SslFlags;
};
 
[ClassVersion("1.0.0")]
class MSFT_WebAuthenticationInformation
{
    [Write] Boolean Anonymous;
    [Write] Boolean Basic;
    [Write] Boolean Digest;
    [Write] Boolean Windows;
};
 
[ClassVersion("2.0.0"), FriendlyName("Website")]
class MSFT_Website : OMI_BaseResource
{
    [Write,ValueMap{"Present", "Absent"},Values{"Present", "Absent"}] String Ensure;
    [Key] String Name;
    [Write] String PhysicalPath;
    [Write,ValueMap{"Started","Stopped"},Values{"Started", "Stopped"}] String State;
    [Write] String ApplicationPool;
    [Write, EmbeddedInstance("MSFT_WebBindingInformation"), Description("Website's binding information in the form of an array of embedded instances of the MSFT_WebBindingInformation CIM class.")] String BindingInfo[];
    [Write] String DefaultPage[];
    [Write] String EnabledProtocols;
    [write, EmbeddedInstance("MSFT_WebAuthenticationInformation"), Description("Hashtable containing authentication information (Anonymous, Basic, Digest, Windows)")] String AuthenticationInfo;
    [Write, Description ("Allows the Website to automatically start without a request")] Boolean PreloadEnabled;
    [Write, Description ("Enables Autostart on a Website.")] Boolean ServiceAutoStartEnabled;
    [Write, Description ("Adds a AutostartProvider")] String ServiceAutoStartProvider;
    [Write, Description ("Adds a AutostartProvider ApplicationType")] String ApplicationType;
    [Write, Description ("The directory to be used for logfiles")] String LogPath;
    [Write, Description ("The W3C logging fields"), ValueMap{"Date","Time","ClientIP","UserName","SiteName","ComputerName","ServerIP","Method","UriStem","UriQuery","HttpStatus","Win32Status","BytesSent","BytesRecv","TimeTaken","ServerPort","UserAgent","Cookie","Referer","ProtocolVersion","Host","HttpSubStatus"},Values{"Date","Time","ClientIP","UserName","SiteName","ComputerName","ServerIP","Method","UriStem","UriQuery","HttpStatus","Win32Status","BytesSent","BytesRecv","TimeTaken","ServerPort","UserAgent","Cookie","Referer","ProtocolVersion","Host","HttpSubStatus"}] String LogFlags[];
    [Write, Description ("How often the log file should rollover"), ValueMap{"Hourly","Daily","Weekly","Monthly","MaxSize"},Values{"Hourly","Daily","Weekly","Monthly","MaxSize"}] String LogPeriod;
    [Write, Description ("How large the file should be before it is truncated")] String LogTruncateSize;
    [Write, Description ("Use the localtime for file naming and rollover")] Boolean LoglocalTimeRollover;
    [Write, Description ("Format of the Logfiles. Only W3C supports LogFlags"), ValueMap{"IIS","W3C","NCSA"}, Values{"IIS","W3C","NCSA"}] String LogFormat;
};