using CodexContractsPlugin; using GethPlugin; using KubernetesWorkflow.Types; namespace CodexPlugin { public class CodexDeployment { public CodexDeployment(CodexInstance[] codexInstances, GethDeployment gethDeployment, CodexContractsDeployment codexContractsDeployment, RunningPod? prometheusContainer, RunningPod? discordBotContainer, DeploymentMetadata metadata, String id) { Id = id; CodexInstances = codexInstances; GethDeployment = gethDeployment; CodexContractsDeployment = codexContractsDeployment; PrometheusContainer = prometheusContainer; DiscordBotContainer = discordBotContainer; Metadata = metadata; } public String Id { get; } public CodexInstance[] CodexInstances { get; } public GethDeployment GethDeployment { get; } public CodexContractsDeployment CodexContractsDeployment { get; } public RunningPod? PrometheusContainer { get; } public RunningPod? DiscordBotContainer { get; } public DeploymentMetadata Metadata { get; } } public class CodexInstance { public CodexInstance(RunningPod pod, DebugInfo info) { Pod = pod; Info = info; } public RunningPod Pod { get; } public DebugInfo Info { get; } } public class DeploymentMetadata { public DeploymentMetadata(string name, DateTime startUtc, DateTime finishedUtc, string kubeNamespace, int numberOfCodexNodes, int numberOfValidators, int storageQuotaMB, CodexLogLevel codexLogLevel, int initialTestTokens, int minPrice, int maxCollateral, int maxDuration, int blockTTL, int blockMI, int blockMN) { Name = name; StartUtc = startUtc; FinishedUtc = finishedUtc; KubeNamespace = kubeNamespace; NumberOfCodexNodes = numberOfCodexNodes; NumberOfValidators = numberOfValidators; StorageQuotaMB = storageQuotaMB; CodexLogLevel = codexLogLevel; InitialTestTokens = initialTestTokens; MinPrice = minPrice; MaxCollateral = maxCollateral; MaxDuration = maxDuration; BlockTTL = blockTTL; BlockMI = blockMI; BlockMN = blockMN; } public string Name { get; } public DateTime StartUtc { get; } public DateTime FinishedUtc { get; } public string KubeNamespace { get; } public int NumberOfCodexNodes { get; } public int NumberOfValidators { get; } public int StorageQuotaMB { get; } public CodexLogLevel CodexLogLevel { get; } public int InitialTestTokens { get; } public int MinPrice { get; } public int MaxCollateral { get; } public int MaxDuration { get; } public int BlockTTL { get; } public int BlockMI { get; } public int BlockMN { get; } } }