import "library/cpp/getoptpb/proto/confoption.proto";

package NUtils;

message TParams {
    option (NGetoptPb.Title) = "CLI wrapper for ConvertFlatArchiveToMultipart function";

    required string InputDir = 1 [(NGetoptPb.Conf).Descr = "input directory with indexarc"];
    required string OutputDir = 2 [(NGetoptPb.Conf).Descr = "output directory"];

    optional string ArcPrefix = 3 [
        default = "index",
        (NGetoptPb.Conf).Descr = "prefix for input  *arc and *dir files"
    ];
    optional string MultipartPrefix = 4 [
        default = "indexarc",
        (NGetoptPb.Conf).Descr = "prefix for output multipart archive files"
    ];

    optional uint32 PartSize = 10 [
        default = 1073741824,
        (NGetoptPb.Conf).Descr = "part size limit"
    ];
    optional string Compression = 11 [
        default = "COMPRESSED",
        (NGetoptPb.Conf).Descr = "compression type (RAW, COMPRESSED, COMPRESSED_EXT)"
    ];
    optional string Algorithm = 12 [
        default = "LZ4",
        (NGetoptPb.Conf).Descr = "compression algorithm (LZ4, LZMA) for COMPRESSED archive"
    ];
    optional int32 Level = 13 [
        default = -1,
        (NGetoptPb.Conf).Descr = "compression level for COMPRESSED archive"
    ];
    optional string Codec = 14 [
        default = "lz4",
        (NGetoptPb.Conf).Descr = "codec name for COMPRESSED_EXT archive"
    ];
    optional uint32 BlockSize = 15 [
        default = 32768,
        (NGetoptPb.Conf).Descr = "block size for COMPRESSED_EXT archive"
    ];
    optional uint32 LearnSize = 16 [
        default = 0,
        (NGetoptPb.Conf).Descr = "learn sample size for COMPRESSED_EXT archive, works only for trainable codecs"
    ];
}

