using System.Collections.Generic;
public static void Main()
Console.WriteLine("Hello World");
var c = typeof(ValidSteps).GetNestedTypes().SelectMany(t => t.GetProperties()).ToList();
Console.WriteLine(c.Count);
Type[] types = typeof(ValidSteps).GetNestedTypes();
Console.WriteLine(types.Length);
for(int i = 0; i < types.Length; i++){
Console.WriteLine(types[i]);
public static class ValidSteps
public static readonly ForgotSteps STEP1 = new() { StepName = "step1", Targetable = true };
public static readonly ForgotSteps PHONE_VALIDATION = new() { StepName = "phone_validation", Targetable = true };
public static readonly ForgotSteps MULTIPLE_ACCOUNTS = new() { StepName = "multiple_accounts", Targetable = true };
public static readonly ForgotSteps EMAIL_VALIDATION = new() { StepName = "email_validation", Targetable = true };
public static readonly ForgotSteps SSN_VALIDATION = new() { StepName = "ssn_validation", Targetable = true };
public static readonly ForgotSteps EMAIL_SENT = new() { StepName = "email_sent", Targetable = true };
public static readonly ForgotSteps SUCCESS_PASSWORD = new() { StepName = "success_password", Targetable = true };
public static readonly ForgotSteps SUCCESS = new() { StepName = "success", Targetable = true };
public static readonly ForgotSteps DISABLED = new() { StepName = "disabled", Targetable = true };
public static readonly ForgotSteps START_PHONE_FLOW = new() { StepName = "phone_flow_start", Targetable = true };
public static readonly ForgotSteps LOADING = new() { StepName = "loading", Targetable = false };
public static readonly ForgotSteps RESET_PASSWORD = new() { StepName = "reset_password", Targetable = false };
public static readonly ForgotSteps ACCOUNT_RECOVERY = new() { StepName = "account_recovery", Targetable = false };
public static readonly ForgotSteps GENERIC_PASSWORD = new() { StepName = "generic_password", Targetable = false };
public static readonly ForgotSteps PROMPT_FOR_PASSWORD = new() { StepName = "prompt_for_password", Targetable = false };
public string StepName { get; set; }
public bool Targetable { get; set; }