1syntax = "proto3"; 2 3package test; 4 5import "lint.proto"; 6import "shared.proto"; 7 8message ValidRequest { 9 gitaly.Repository destination = 1 [(gitaly.target_repository)=true]; 10} 11 12message ValidRequestWithoutRepo { 13} 14 15message ValidStorageRequest { 16 string storage_name = 1 [(gitaly.storage)=true]; 17} 18 19message ValidResponse{} 20 21message ValidNestedRequest{ 22 ValidRequest inner_message = 1; 23} 24 25message ValidStorageNestedRequest{ 26 ValidStorageRequest inner_message = 1; 27} 28 29message ValidNestedSharedRequest { 30 gitaly.ObjectPool nested_target_repo = 1 [(gitaly.target_repository)=true]; 31} 32 33message ValidInnerNestedRequest { 34 message Header { 35 gitaly.Repository destination = 1 [(gitaly.target_repository)=true]; 36 } 37 38 Header header = 1; 39} 40 41message ValidStorageInnerNestedRequest { 42 message Header { 43 string storage_name = 1 [(gitaly.storage) = true]; 44 } 45 46 Header header = 1; 47} 48 49service InterceptedService { 50 // intercepted services do not need method operation and scope 51 // annotations. 52 option (gitaly.intercepted) = true; 53 54 rpc TestMethod(ValidRequest) returns (ValidResponse); 55} 56 57service ValidService { 58 rpc TestMethod(ValidRequest) returns (ValidResponse) { 59 option (gitaly.op_type) = { 60 op: ACCESSOR 61 }; 62 } 63 64 rpc TestMethod2(ValidRequest) returns (ValidResponse) { 65 option (gitaly.op_type) = { 66 op: MUTATOR 67 }; 68 } 69 70 rpc TestMethod3(ValidRequest) returns (ValidResponse) { 71 option (gitaly.op_type) = { 72 op: MUTATOR 73 scope_level: REPOSITORY // repo can be explicitly included 74 }; 75 } 76 77 rpc TestMethod5(ValidNestedRequest) returns (ValidResponse) { 78 option (gitaly.op_type) = { 79 op: MUTATOR 80 }; 81 } 82 83 rpc TestMethod6(ValidNestedSharedRequest) returns (ValidResponse) { 84 option (gitaly.op_type) = { 85 op: MUTATOR 86 }; 87 } 88 89 rpc TestMethod7(ValidInnerNestedRequest) returns (ValidResponse) { 90 option (gitaly.op_type) = { 91 op: MUTATOR 92 }; 93 } 94 95 rpc TestMethod8(ValidStorageRequest) returns (ValidResponse) { 96 option (gitaly.op_type) = { 97 op: MUTATOR 98 scope_level: STORAGE 99 }; 100 } 101 102 rpc TestMethod9(ValidStorageNestedRequest) returns (ValidResponse) { 103 option (gitaly.op_type) = { 104 op: MUTATOR 105 scope_level: STORAGE 106 }; 107 } 108} 109