// Add these message definitions to the end of memo_service.proto message ExportMemosRequest { // Optional. Format for the export (currently only "json" is supported) string format = 1 [(google.api.field_behavior) = OPTIONAL]; // Optional. Filter to apply to memos for export // Uses the same filter format as ListMemosRequest string filter = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. Whether to exclude archived memos from export // Default: false (include archived memos) bool exclude_archived = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. Whether to include attachments in the export // Default: true bool include_attachments = 4 [(google.api.field_behavior) = OPTIONAL]; // Optional. Whether to include memo relations in the export // Default: true bool include_relations = 5 [(google.api.field_behavior) = OPTIONAL]; } message ExportMemosResponse { // The exported data as bytes bytes data = 1; // The format of the exported data string format = 2; // Suggested filename for the export string filename = 3; // Number of memos exported int32 memo_count = 4; // Size of the export data in bytes int64 size_bytes = 5; } message ImportMemosRequest { // Required. The data to import (JSON format) bytes data = 1 [(google.api.field_behavior) = REQUIRED]; // Optional. Format of the import data (currently only "json" is supported) string format = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. Whether to overwrite existing memos with the same UID // Default: false (skip existing memos) bool overwrite_existing = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. Whether to validate only (dry run mode) // If true, the import will be validated but no data will be created bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL]; // Optional. Whether to preserve original timestamps // Default: true bool preserve_timestamps = 5 [(google.api.field_behavior) = OPTIONAL]; // Optional. Whether to skip importing attachments // Default: false (import attachments if present) bool skip_attachments = 6 [(google.api.field_behavior) = OPTIONAL]; // Optional. Whether to skip importing memo relations // Default: false (import relations if present) bool skip_relations = 7 [(google.api.field_behavior) = OPTIONAL]; } message ImportMemosResponse { // Number of memos successfully imported int32 imported_count = 1; // Number of memos skipped (due to errors or existing UIDs) int32 skipped_count = 2; // Number of memos that failed validation (in validate_only mode) int32 validation_errors = 3; // List of error messages for failed imports repeated string errors = 4; // List of warning messages for potential issues repeated string warnings = 5; // Summary of the import operation ImportSummary summary = 6; } message ImportSummary { // Total number of memos in the import data int32 total_memos = 1; // Number of new memos created int32 created_count = 2; // Number of existing memos updated int32 updated_count = 3; // Number of attachments imported int32 attachments_imported = 4; // Number of relations imported int32 relations_imported = 5; // Import duration in milliseconds int64 duration_ms = 6; }