// generated from contracts/telemetry/kbx.telemetry.json; do not edit.
namespace Kbx.Shared.Telemetry.Generated;

public sealed record KbxTelemetryEventDefinition(string Name,string Category,IReadOnlyList<string> AllowedAttributes,bool RequiresDuration);

public static class KbxTelemetryCatalog
{
    public const string SourceSha256 = "9f5de69498b657cb0d60df18c1e98c504a44eec555c4fc50d46f15f83a4ea1ce";
    public static readonly IReadOnlyDictionary<string,KbxTelemetryEventDefinition> Events = new Dictionary<string,KbxTelemetryEventDefinition>(StringComparer.Ordinal)
    {
        ["screen.open"] = new("screen.open", "navigation", new[] { "module", "launchMode" }, false),
        ["screen.close"] = new("screen.close", "navigation", new[] { "module", "closeReason" }, false),
        ["task.start"] = new("task.start", "task", new[] { "taskType" }, false),
        ["task.complete"] = new("task.complete", "task", new[] { "taskType", "result" }, true),
        ["task.abandon"] = new("task.abandon", "task", new[] { "taskType", "reasonCode" }, true),
        ["interaction.execute"] = new("interaction.execute", "interaction", new[] { "interactionType", "commandId" }, false),
        ["search.execute"] = new("search.execute", "interaction", new[] { "resultBucket" }, false),
        ["command.execute"] = new("command.execute", "command", new[] { "commandId", "operationKind" }, false),
        ["command.succeeded"] = new("command.succeeded", "command", new[] { "commandId", "operationKind" }, true),
        ["command.failed"] = new("command.failed", "command", new[] { "commandId", "problemType", "reasonCode" }, true),
        ["lookup.open"] = new("lookup.open", "lookup", new[] { "entityType" }, false),
        ["lookup.select"] = new("lookup.select", "lookup", new[] { "entityType", "selectionSource" }, false),
        ["grid.bulk_action"] = new("grid.bulk_action", "interaction", new[] { "commandId", "countBucket" }, false),
        ["validation.failed"] = new("validation.failed", "quality", new[] { "stage", "errorCountBucket", "reasonCode" }, false),
        ["excel.import.start"] = new("excel.import.start", "excel", new[] { "importType", "rowCountBucket" }, false),
        ["excel.import.completed"] = new("excel.import.completed", "excel", new[] { "importType", "result", "rowCountBucket" }, true),
        ["excel.import.failed"] = new("excel.import.failed", "excel", new[] { "importType", "reasonCode", "rowCountBucket" }, true),
        ["exception.open"] = new("exception.open", "exception", new[] { "exceptionType", "severity" }, false),
        ["exception.resolved"] = new("exception.resolved", "exception", new[] { "exceptionType", "resolutionType" }, true),
        ["ai.proposal.open"] = new("ai.proposal.open", "ai", new[] { "proposalType" }, false),
        ["ai.proposal.accept"] = new("ai.proposal.accept", "ai", new[] { "proposalType" }, false),
        ["ai.proposal.reject"] = new("ai.proposal.reject", "ai", new[] { "proposalType", "reasonCode" }, false),
        ["manual.intervention"] = new("manual.intervention", "outcome", new[] { "workType", "reasonCode", "exceptionType" }, false),
        ["experiment.exposed"] = new("experiment.exposed", "experiment", new[] { "surface" }, false)
    };
}
