using ZB.MOM.WW.ScadaBridge.Commons.Types.Transport; namespace ZB.MOM.WW.ScadaBridge.Commons.Messages.Management; /// /// Exports a bundle. Names rather than IDs in the selection so test scripts can /// be written without an ID lookup step. All=true overrides the per-type /// name lists and exports every entity of every supported type. /// /// Inbound API keys are intentionally not selectable: per the inbound-API-key /// re-architecture (C4) keys are not transported between environments; only API /// methods travel. Re-create keys and re-grant their method scopes on the /// destination via the admin UI/CLI. /// /// public sealed record ExportBundleCommand( bool All, IReadOnlyList? TemplateNames, IReadOnlyList? SharedScriptNames, IReadOnlyList? ExternalSystemNames, IReadOnlyList? DatabaseConnectionNames, IReadOnlyList? NotificationListNames, IReadOnlyList? SmtpConfigurationNames, IReadOnlyList? ApiMethodNames, bool IncludeDependencies, string? Passphrase, string SourceEnvironment); /// /// Bundle body returned as base64-encoded ZIP. is the /// pre-encoded size for sanity checks against the configured bundle cap. /// public sealed record ExportBundleResult( string Base64Bundle, int ByteCount); /// /// Loads a bundle and returns its preview without applying anything. Useful /// for tests that want to assert on the diff shape before committing. /// public sealed record PreviewBundleCommand( string Base64Bundle, string? Passphrase); public sealed record PreviewBundleResult( IReadOnlyList Items, int AddCount, int ModifiedCount, int IdenticalCount, int BlockerCount); /// /// Loads, previews, and applies a bundle in a single call. The diff is built /// internally; every row is resolved with /// , every /// row gets , every /// row gets , /// and any row fails the call. /// /// Valid values: "skip", /// "overwrite", "rename". Rename mints a unique suffix per row. /// /// public sealed record ImportBundleCommand( string Base64Bundle, string? Passphrase, string DefaultConflictPolicy);