syntax = "proto3";

package git.v1;

import "common.proto";

// Mirrors: cmd/archive/mod.rs — ArchiveOptions
message ArchiveOptions {
  ObjectId tree = 1;
  optional string prefix = 2;
  repeated string pathspec = 3;
}

// Mirrors: cmd/archive/mod.rs — ArchiveResult
message ArchiveResult {
  bytes bytes = 1;
}

message ArchiveTarRequest {
  string repo_id = 1;
  ArchiveOptions options = 2;
}

message ArchiveTarResponse {
  bytes data = 1;
}

message ArchiveZipRequest {
  string repo_id = 1;
  ArchiveOptions options = 2;
}

message ArchiveZipResponse {
  bytes data = 1;
}

service ArchiveService {
  rpc ArchiveTar(ArchiveTarRequest) returns (ArchiveTarResponse);
  rpc ArchiveZip(ArchiveZipRequest) returns (ArchiveZipResponse);
}