93 lines
3.5 KiB
C#

// Copyright (C) Intel Corporation, 2010 All Rights Reserved.
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
namespace Intel.Management.Wsman
{
/// <summary>
/// Represents a reference to a CIM resource
/// </summary>
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
[Guid("2C3278AB-3CDC-4921-8854-6F437C606A4B")]
[ComVisible(true)]
public interface IManagedReference
{
/// <summary>
/// Gets the connection object associated with the reference
/// </summary>
IWsmanConnection Connection {get;}
/// <summary>
/// Gets resourceUri of the reference
/// </summary>
string ResourceUri {get;}
/// <summary>
/// Get The simple name of the resource
/// </summary>
string SimpleName { get; }
/// <summary>
/// Gets the address of the reference
/// </summary>
string Address {get;}
/// <summary>
/// Gets the XML representation of the reference
/// </summary>
string Xml {get;set;}
/// <summary>
/// Adds a selector that be used to find instances
/// </summary>
/// <param name="name">The name of the selector</param>
/// <param name="value">The value of the selector</param>
void AddSelector(string name, object value);
/// <summary>
/// Creates input parameters for invoking methods
/// </summary>
/// <param name="methodName">The name of the method to create parameters for</param>
/// <return>Returns an instance that parameters can be added to</return>
IManagedInstance CreateMethodInput(string methodName);
/// <summary>
/// Gets instance data from the server
/// </summary>
/// <return>An IManagedInstance object that reference represents</return>
IManagedInstance Get();
/// <summary>
/// Puts (updates) an instance data associated with the reference
/// </summary>
/// <param name="input">The instance data</param>
/// <return>Returns the updated instance</return>
IManagedInstance Put(object input);
/// <summary>
/// Deletes the referenced object from the server
/// </summary>
void Delete();
/// <summary>
/// Enumerates instances associated with the reference
/// </summary>
/// <param name="input">Optional input filter</param>
/// <param name="mode">Optional enumeration mode</param>
/// <return>An enumeration object</return>
IWsmanEnumeration Enumerate
([Optional, DefaultParameterValue(null)]object input,
[Optional, DefaultParameterValue(null)]string mode);
/// <summary>
/// Invokes a method
/// </summary>
/// <param name="input">Method parameters</param>
/// <return>The method output parameters</return>
IManagedInstance InvokeMethod(object input);
/// <summary>
/// Subscribes to receive events emitted by the object
/// </summary>
/// <param name="mode">The delivery mode</param>
/// <param name="toAddress">The address to deliver events to</param>
/// <return>A reference to the subscription service</return>
IManagedReference Subscribe(string mode, string toAddress);
/// <summary>
/// End subscribing to events
/// </summary>
void Unsubscribe();
}
}