// **************************************************************************
// Copyright (c) 1999 Microsoft Corporation.
//
// File:  HIProv.mof
//
// Description:
//			MOF file for the HTTP instance provider.
//			Contains instances required to register this provider with
//			WBEM, and the definition of the class that this provider provides.
//
// History:
//
// **************************************************************************

/////////////////////////////////////////////////////////////////////
// Declare an instance of the __Win32Provider so as to "register" the
// HTTP provider
#pragma Namespace("\\root\\cimv2\\MicrosoftHealthMonitor")

instance of __Win32Provider as $P
{
    Name        = "HTTPProvider" ;
    ClsId   = "{DDE61D4B-D717-45db-B737-94DA5A63193C}" ;
} ;    

instance of __InstanceProviderRegistration
{
    Provider = $P;
    SupportsPut = FALSE;
    SupportsGet = TRUE;
    SupportsDelete = FALSE;
    SupportsEnumeration = FALSE;
};


/////////////////////////////////////////////////////////////////////
//
// Declare a class whose dynamic instances are provided by the 
// sample provider.

[dynamic, provider("HTTPProvider")]
class HTTPProvider
{
    	[key,MaxLen(20), Description("HTTP Verb")]	
	String Method="GET";
	[key,MaxLen(4096), Description("Url requested")]	
	String Url="";
	[key, Description("Timeout in milliseconds")]	
	uint32 TimeoutMsecs=30000;
	[key,MaxLen(8), Description("Protocol to use in the request")]   
	String RequestProtocol="HTTP/1.1";
	[key, Description("Authentication method to use for requesting the http document")]
	uint32 AuthType=0;
	[key, write, MaxLen(256), Description("Username for authentication")] 
	String AuthUser="";
	[key, write, MaxLen(256), Description("Password for authentication")] 
	String AuthPassword="";
	[key, MaxLen(256), Description("Proxy Server to use")]   
	String ProxyServer="";
	[key, write, Description("Username for Proxy Server if it requires authentication")] 
	String PSAuthUser="";
	[key, write, Description("Password for Proxy Server if it requires authentication")] 
	String PSAuthPassword="";
	[key, MaxLen(1024), Description("Extra headers to include in the request")]   
	String ExtraHeaders="";
	[key, MaxLen(4096), Description("Data to pass in a POST request")]   
	String PostData="";			
	[key, Description("Automatic redirection allowed")]   
	boolean FollowRedirects=TRUE;
	[key, Description("Length of the response to store in the buffer")]   
	uint32 ResponseLength=131072;
	[key, Description("TRUE if a binary buffer is expected in response")]   
	boolean ExpectBinaryResponse=FALSE;

	[read, Description("HTTP Status Code")]  
	uint32 StatusCode=0;
	[read, Description("HTTP Status Text")]  
	String StatusText="";
	[read, Description("Content length header")]  
	uint32 ContentLength=0;
	[read, Description("Text buffer containing the response")]  
	String TextResponse="";
	[read, Description("Binary response storage array")]  
	uint8 BinaryResponse[];
	[read, Description("Protocol received in the response")]	
	String ResponseProtocol="";
	[read, Description("Buffer of the headers received")]	
	String RawHeaders="";
	[read, Description("Content-type header")]	
	String ContentType="";
	[read, Description("Cookie-header received")]	
	String Cookie="";
	[read, Description("Last-modified header")]	
	String LastModified="";
	[read, Description("Time occurred to handle the request")]	
	uint32 ResponseTime=0;
	[read, Description("Description of LastError occurred, if any")]	
	String ErrorDescription="";
	[read, Description("Number of bytes downloaded from host")]
	uint32 ReceivedBytes=0;
};


