Framework/Models/AzSdkEvent.ps1

Set-StrictMode -Version Latest
class AzSdkRootEvent {
    static [string] $CustomMessage = "AzSdk.CustomMessage"; #EventArgument: AzSdkRootEventArgument

    static [string] $GenerateRunIdentifier = "AzSdk.GenerateRunIdentifier"; #Creates a timestamp and publish, Initialize listeners #EventArgument: AzSdkRootEventArgument
    static [string] $UnsupportedResources = "AzSdk.UnsupportedResources";

    #Command level event
    static [string] $CommandStarted = "AzSdk.Command.Started"; #Initialize listeners #Command execution started #EventArgument: AzSdkRootEventArgument
    static [string] $CommandCompleted = "AzSdk.Command.Completed"; #Cleanup listeners #Command execution completed #EventArgument: AzSdkRootEventArgument
    static [string] $CommandError = "AzSdk.Command.Error"; #EventArgument: AzSdkRootEventArgument
    static [string] $CommandProcessing = "AzSdk.Command.Processing"; #EventArgument: AzSdkRootEventArgument
}

class SubscriptionContext {
    [string] $SubscriptionId = "";
    [string] $SubscriptionName = "";
    [string] $Scope = "";
    [hashtable] $SubscriptionMetadata = @{}
}

class AzSdkRootEventArgument {
    [SubscriptionContext] $SubscriptionContext;
    [MessageData[]] $Messages = @();
    hidden [System.Management.Automation.ErrorRecord] $ExceptionMessage
}