Framework/Models/AzSkEvent.ps1

Set-StrictMode -Version Latest
class AzSkRootEvent {
    static [string] $CustomMessage = "AzSk.CustomMessage"; #EventArgument: AzSkRootEventArgument

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

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

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

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