#pragma namespace("\\\\.\\root")

[Locale(1033) : ToInstance, NamespaceSecuritySDDL("O:BAG:BAD:P(A;;CCDCLCSWRPWPRCWD;;;BA)(A;;CCDCRP;;;SY)(A;;CCDCRP;;;NS)")]     
Instance of __Namespace
{
  Name = "PEH";
};



#pragma autorecover
#pragma classflags ("forceupdate")
#pragma namespace("\\\\.\\root\\PEH")

Instance of __Win32Provider as $prov
{
  Name = "MINT";
  ClsId = "{3C852D74-7E49-4FF3-BF21-81EF888078D4}";
  ImpersonationLevel = 1;
  HostingModel = "LocalSystemHost";
  version = 1073741825;
};

Instance of __MethodProviderRegistration
{
  Provider = $prov;
};

Instance of __InstanceProviderRegistration
{
  Provider = $prov;
  supportsGet = TRUE;
  supportsPut = TRUE;
  supportsDelete = TRUE;
  supportsEnumeration = TRUE;
  QuerySupportLevels;
};

[Abstract,locale(1033)] 
class MSFT_Engine
{
  [key] string InstanceId;
  string Name;
  uint32 CreateDefaultRunspace([In] string runspaceName,[Out] MSFT_Runspace Ref runspace);
};

[locale(1033)] 
class MSFT_Expression
{
  string SourceInfo;
  string SourceLines[];
};

[locale(1033)] 
class MSFT_ExpressionAssignment : MSFT_Expression
{
  [EmbeddedInstance("MSFT_ExpressionIdentifier") : ToSubclass] MSFT_ExpressionIdentifier lvalue;
  [EmbeddedInstance("MSFT_Expression") : ToSubclass] MSFT_Expression rvalue;
};

[locale(1033)] 
class MSFT_ExpressionBegin : MSFT_Expression
{
  [EmbeddedInstance("MSFT_Expression") : ToSubclass] MSFT_Expression body[];
};

[locale(1033)] 
class MSFT_ExpressionCall : MSFT_Expression
{
  [EmbeddedInstance("MSFT_Expression") : ToSubclass] MSFT_Expression function;
  [EmbeddedInstance("MSFT_Expression") : ToSubclass] MSFT_Expression pipeline;
  [EmbeddedInstance("MSFT_Expression") : ToSubclass] MSFT_Expression arguments[];
};

[locale(1033)] 
class MSFT_ExpressionIdentifier : MSFT_Expression
{
  string name;
};

[locale(1033)] 
class MSFT_ExpressionIf : MSFT_Expression
{
  [EmbeddedInstance("MSFT_Expression") : ToSubclass] MSFT_Expression condition;
  [EmbeddedInstance("MSFT_Expression") : ToSubclass] MSFT_Expression truecase;
  [EmbeddedInstance("MSFT_Expression") : ToSubclass] MSFT_Expression falsecase;
};

[locale(1033)] 
class MSFT_ExpressionKeywordParameter : MSFT_ExpressionIdentifier
{
  string keywordalias;
};

[locale(1033)] 
class MSFT_ExpressionKeywordValue : MSFT_Expression
{
  string keyword;
};

[locale(1033)] 
class MSFT_ExpressionLambda : MSFT_Expression
{
  [EmbeddedInstance("MSFT_ExpressionIdentifier") : ToSubclass] MSFT_ExpressionIdentifier pipeline;
  [EmbeddedInstance("MSFT_ExpressionIdentifier") : ToSubclass] MSFT_ExpressionIdentifier parameters[];
  [EmbeddedInstance("MSFT_Expression") : ToSubclass] MSFT_Expression body;
};

[locale(1033)] 
class MSFT_ExpressionLet : MSFT_Expression
{
  [EmbeddedInstance("MSFT_ExpressionAssignment") : ToSubclass] MSFT_ExpressionAssignment initializers[];
  [EmbeddedInstance("MSFT_Expression") : ToSubclass] MSFT_Expression body;
};

[locale(1033)] 
class MSFT_ExpressionLoop : MSFT_Expression
{
  [EmbeddedInstance("MSFT_Expression") : ToSubclass] MSFT_Expression condition;
  [EmbeddedInstance("MSFT_Expression") : ToSubclass] MSFT_Expression body;
};

[locale(1033)] 
class MSFT_ExpressionValue : MSFT_Expression
{
  boolean hasValue;
};

[locale(1033)] 
class MSFT_ExpressionValue_boolean : MSFT_ExpressionValue
{
  boolean value;
};

[locale(1033)] 
class MSFT_ExpressionValue_datetime : MSFT_ExpressionValue
{
  datetime value;
};

[locale(1033)] 
class MSFT_ExpressionValue_real32 : MSFT_ExpressionValue
{
  real32 value;
};

[locale(1033)] 
class MSFT_ExpressionValue_real64 : MSFT_ExpressionValue
{
  real64 value;
};

[locale(1033)] 
class MSFT_ExpressionValue_sint16 : MSFT_ExpressionValue
{
  sint16 value;
};

[locale(1033)] 
class MSFT_ExpressionValue_sint32 : MSFT_ExpressionValue
{
  sint32 value;
};

[locale(1033)] 
class MSFT_ExpressionValue_sint64 : MSFT_ExpressionValue
{
  sint64 value;
};

[locale(1033)] 
class MSFT_ExpressionValue_sint8 : MSFT_ExpressionValue
{
  sint8 value;
};

[locale(1033)] 
class MSFT_ExpressionValue_string : MSFT_ExpressionValue
{
  string value;
};

[locale(1033)] 
class MSFT_ExpressionValue_uint16 : MSFT_ExpressionValue
{
  uint16 value;
};

[locale(1033)] 
class MSFT_ExpressionValue_uint32 : MSFT_ExpressionValue
{
  uint32 value;
};

[locale(1033)] 
class MSFT_ExpressionValue_uint64 : MSFT_ExpressionValue
{
  uint64 value;
};

[locale(1033)] 
class MSFT_ExpressionValue_uint8 : MSFT_ExpressionValue
{
  uint8 value;
};

[locale(1033),dynamic : ToInstance,provider("MINT") : ToInstance] 
class MSFT_MintEngine : MSFT_Engine
{
  [implemented] uint32 CreateDefaultRunspace([In] string runspaceName,[Out] MSFT_Runspace Ref runspace);
  [implemented,static : ToSubclass DisableOverride] uint32 ExecuteExpression([In,Required : ToSubclass DisableOverride,EmbeddedInstance("MSFT_Expression") : ToSubclass] MSFT_Expression expression,[In,EmbeddedObject : ToSubclass DisableOverride] object args,[In] string modules[],[In] MSFT_Engine Ref engine,[In] string pipelineExecutionName,[Out] MSFT_PipelineExecution Ref pipelineExecution);
  [implemented,static : ToSubclass DisableOverride] uint32 Wakeup([In] uint32 Flags);
};

[Abstract,locale(1033)] 
class MSFT_Pipeline
{
  [key] string InstanceId;
  string Name;
  uint32 Execute([In] string pipelineExecutionName,[Out] MSFT_PipelineExecution Ref pipelineExecution);
};

[locale(1033),dynamic : ToInstance,provider("MINT") : ToInstance] 
class MSFT_MintPipeline : MSFT_Pipeline
{
  [implemented] uint32 Execute([In] string pipelineExecutionName,[Out] MSFT_PipelineExecution Ref pipelineExecution);
};

[Abstract,locale(1033)] 
class MSFT_PipelineDefinition
{
  [key] string InstanceId;
  string Name;
};

[locale(1033),dynamic : ToInstance,provider("MINT") : ToInstance] 
class MSFT_MintPipelineDefinition : MSFT_PipelineDefinition
{
  [Required : ToSubclass DisableOverride,EmbeddedInstance("MSFT_Expression") : ToSubclass] MSFT_Expression expression;
};

[Abstract,locale(1033)] 
class MSFT_PipelineExecution
{
  [key] string InstanceId;
  string Name;
};

[locale(1033),dynamic : ToInstance,provider("MINT") : ToInstance] 
class MSFT_MintPipelineExecution : MSFT_PipelineExecution
{
};

[Abstract,locale(1033)] 
class MSFT_Runspace
{
  [key] string InstanceId;
  string Name;
  uint32 CreatePipeline([In,Required : ToSubclass DisableOverride] string pipelineDefinitionInstanceId,[In] string pipelineName,[In,EmbeddedObject : ToSubclass DisableOverride] object args,[Out] MSFT_Pipeline Ref pipeline);
  uint32 ImportModule([In] string modules[]);
};

[locale(1033),dynamic : ToInstance,provider("MINT") : ToInstance] 
class MSFT_MintRunspace : MSFT_Runspace
{
  [implemented] uint32 CreatePipeline([In,Required : ToSubclass DisableOverride] string pipelineDefinitionInstanceId,[In] string pipelineName,[In,EmbeddedObject : ToSubclass DisableOverride] object args,[Out] MSFT_Pipeline Ref pipeline);
  [implemented] uint32 ImportModule([In] string modules[]);
};
