syntax = "proto3";

package testdata;

option go_package = "gitlab.com/gitlab-org/gitaly/v15/internal/middleware/cache/testdata";

import "lint.proto";
import "shared.proto";

message Request {
  gitaly.Repository destination = 1 [(gitaly.target_repository)=true];
}

message Response{}

service InterceptedService {
  option (gitaly.intercepted) = true;

  rpc IgnoredMethod(Request) returns (Response);
}

service TestService {
  rpc ClientStreamRepoMutator(Request) returns (stream Response) {
    option (gitaly.op_type) = {
      op: MUTATOR
    };
  }

  rpc ClientStreamRepoAccessor(Request) returns (stream Response) {
    option (gitaly.op_type) = {
      op: ACCESSOR
    };
  }

  rpc ClientStreamRepoMaintainer(Request) returns (stream Response) {
    option (gitaly.op_type) = {
      op: MAINTENANCE
    };
  }

  rpc ClientUnaryRepoMutator(Request) returns (Response) {
    option (gitaly.op_type) = {
      op: MUTATOR
    };
  }

  rpc ClientUnaryRepoAccessor(Request) returns (Response) {
    option (gitaly.op_type) = {
      op: ACCESSOR
    };
  }

  rpc ClientUnaryRepoMaintainer(Request) returns (Response) {
    option (gitaly.op_type) = {
      op: MAINTENANCE
    };
  }
}
