using VYaml.Annotations; namespace MoonlightServers.Api.Admin.Templates; [YamlObject] public partial class TemplateTransferModel { public string Name { get; set; } = ""; public string Description { get; set; } = ""; public string Author { get; set; } = ""; public string Version { get; set; } = ""; public string? UpdateUrl { get; set; } public string? DonateUrl { get; set; } public FilesConfigTransferModel Files { get; set; } = new(); public LifecycleConfigTransferModel Lifecycle { get; set; } = new(); public InstallationConfigTransferModel Installation { get; set; } = new(); public MiscellaneousConfigTransferModel Miscellaneous { get; set; } = new(); public bool AllowUserDockerImageChange { get; set; } public List DockerImages { get; set; } = new(); public List Variables { get; set; } = new(); } [YamlObject] public partial class TemplateDockerImageTransferModel { public string DisplayName { get; set; } = ""; public string ImageName { get; set; } = ""; public bool SkipPulling { get; set; } public bool IsDefault { get; set; } } [YamlObject] public partial class TemplateVariableTransferModel { public string DisplayName { get; set; } = ""; public string Description { get; set; } = ""; public string EnvName { get; set; } = ""; public string? DefaultValue { get; set; } } [YamlObject] public partial class FilesConfigTransferModel { public List ConfigurationFiles { get; set; } = new(); } [YamlObject] public partial class ConfigurationFileTransferModel { public string Path { get; set; } = ""; public string Parser { get; set; } = ""; public List Mappings { get; set; } = new(); } [YamlObject] public partial class ConfigurationFileMappingTransferModel { public string Key { get; set; } = ""; public string? Value { get; set; } } [YamlObject] public partial class LifecycleConfigTransferModel { public List StartupCommands { get; set; } = new(); public string StopCommand { get; set; } = ""; public List OnlineLogPatterns { get; set; } = new(); } [YamlObject] public partial class StartupCommandTransferModel { public string DisplayName { get; set; } = ""; public string Command { get; set; } = ""; } [YamlObject] public partial class InstallationConfigTransferModel { public string DockerImage { get; set; } = ""; public string Shell { get; set; } = ""; public string Script { get; set; } = ""; } [YamlObject] public partial class MiscellaneousConfigTransferModel { public bool UseLegacyStartup { get; set; } }