1*d5c09012SAndroid Build Coastguard Worker// Copyright 2017 Google Inc. 2*d5c09012SAndroid Build Coastguard Worker// 3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*d5c09012SAndroid Build Coastguard Worker// 7*d5c09012SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*d5c09012SAndroid Build Coastguard Worker// 9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*d5c09012SAndroid Build Coastguard Worker// limitations under the License. 14*d5c09012SAndroid Build Coastguard Worker 15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3"; 16*d5c09012SAndroid Build Coastguard Worker 17*d5c09012SAndroid Build Coastguard Workerpackage google.devtools.sourcerepo.v1; 18*d5c09012SAndroid Build Coastguard Worker 19*d5c09012SAndroid Build Coastguard Workerimport "google/api/annotations.proto"; 20*d5c09012SAndroid Build Coastguard Workerimport "google/iam/v1/iam_policy.proto"; 21*d5c09012SAndroid Build Coastguard Workerimport "google/iam/v1/policy.proto"; 22*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/empty.proto"; 23*d5c09012SAndroid Build Coastguard Worker 24*d5c09012SAndroid Build Coastguard Workeroption go_package = "google.golang.org/genproto/googleapis/devtools/sourcerepo/v1;sourcerepo"; 25*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 26*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "SourceRepoProto"; 27*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.devtools.sourcerepo.v1"; 28*d5c09012SAndroid Build Coastguard Worker 29*d5c09012SAndroid Build Coastguard Worker// The Source Repo API service. 30*d5c09012SAndroid Build Coastguard Workerservice SourceRepo { 31*d5c09012SAndroid Build Coastguard Worker // Returns all repos belonging to a project. The sizes of the repos are 32*d5c09012SAndroid Build Coastguard Worker // not set by ListRepos. To get the size of a repo, use GetRepo. 33*d5c09012SAndroid Build Coastguard Worker rpc ListRepos(ListReposRequest) returns (ListReposResponse) { 34*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 35*d5c09012SAndroid Build Coastguard Worker get: "/v1/{name=projects/*}/repos" 36*d5c09012SAndroid Build Coastguard Worker }; 37*d5c09012SAndroid Build Coastguard Worker } 38*d5c09012SAndroid Build Coastguard Worker 39*d5c09012SAndroid Build Coastguard Worker // Returns information about a repo. 40*d5c09012SAndroid Build Coastguard Worker rpc GetRepo(GetRepoRequest) returns (Repo) { 41*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 42*d5c09012SAndroid Build Coastguard Worker get: "/v1/{name=projects/*/repos/**}" 43*d5c09012SAndroid Build Coastguard Worker }; 44*d5c09012SAndroid Build Coastguard Worker } 45*d5c09012SAndroid Build Coastguard Worker 46*d5c09012SAndroid Build Coastguard Worker // Creates a repo in the given project with the given name. 47*d5c09012SAndroid Build Coastguard Worker // 48*d5c09012SAndroid Build Coastguard Worker // If the named repository already exists, `CreateRepo` returns 49*d5c09012SAndroid Build Coastguard Worker // `ALREADY_EXISTS`. 50*d5c09012SAndroid Build Coastguard Worker rpc CreateRepo(CreateRepoRequest) returns (Repo) { 51*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 52*d5c09012SAndroid Build Coastguard Worker post: "/v1/{parent=projects/*}/repos" 53*d5c09012SAndroid Build Coastguard Worker body: "repo" 54*d5c09012SAndroid Build Coastguard Worker }; 55*d5c09012SAndroid Build Coastguard Worker } 56*d5c09012SAndroid Build Coastguard Worker 57*d5c09012SAndroid Build Coastguard Worker // Deletes a repo. 58*d5c09012SAndroid Build Coastguard Worker rpc DeleteRepo(DeleteRepoRequest) returns (google.protobuf.Empty) { 59*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 60*d5c09012SAndroid Build Coastguard Worker delete: "/v1/{name=projects/*/repos/**}" 61*d5c09012SAndroid Build Coastguard Worker }; 62*d5c09012SAndroid Build Coastguard Worker } 63*d5c09012SAndroid Build Coastguard Worker 64*d5c09012SAndroid Build Coastguard Worker // Sets the access control policy on the specified resource. Replaces any 65*d5c09012SAndroid Build Coastguard Worker // existing policy. 66*d5c09012SAndroid Build Coastguard Worker rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) 67*d5c09012SAndroid Build Coastguard Worker returns (google.iam.v1.Policy) { 68*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 69*d5c09012SAndroid Build Coastguard Worker post: "/v1/{resource=projects/*/repos/**}:setIamPolicy" 70*d5c09012SAndroid Build Coastguard Worker body: "*" 71*d5c09012SAndroid Build Coastguard Worker }; 72*d5c09012SAndroid Build Coastguard Worker } 73*d5c09012SAndroid Build Coastguard Worker 74*d5c09012SAndroid Build Coastguard Worker // Gets the access control policy for a resource. 75*d5c09012SAndroid Build Coastguard Worker // Returns an empty policy if the resource exists and does not have a policy 76*d5c09012SAndroid Build Coastguard Worker // set. 77*d5c09012SAndroid Build Coastguard Worker rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) 78*d5c09012SAndroid Build Coastguard Worker returns (google.iam.v1.Policy) { 79*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 80*d5c09012SAndroid Build Coastguard Worker get: "/v1/{resource=projects/*/repos/**}:getIamPolicy" 81*d5c09012SAndroid Build Coastguard Worker }; 82*d5c09012SAndroid Build Coastguard Worker } 83*d5c09012SAndroid Build Coastguard Worker 84*d5c09012SAndroid Build Coastguard Worker // Returns permissions that a caller has on the specified resource. 85*d5c09012SAndroid Build Coastguard Worker // If the resource does not exist, this will return an empty set of 86*d5c09012SAndroid Build Coastguard Worker // permissions, not a NOT_FOUND error. 87*d5c09012SAndroid Build Coastguard Worker rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) 88*d5c09012SAndroid Build Coastguard Worker returns (google.iam.v1.TestIamPermissionsResponse) { 89*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 90*d5c09012SAndroid Build Coastguard Worker post: "/v1/{resource=projects/*/repos/**}:testIamPermissions" 91*d5c09012SAndroid Build Coastguard Worker body: "*" 92*d5c09012SAndroid Build Coastguard Worker }; 93*d5c09012SAndroid Build Coastguard Worker } 94*d5c09012SAndroid Build Coastguard Worker} 95*d5c09012SAndroid Build Coastguard Worker 96*d5c09012SAndroid Build Coastguard Worker// A repository (or repo) is a Git repository storing versioned source content. 97*d5c09012SAndroid Build Coastguard Workermessage Repo { 98*d5c09012SAndroid Build Coastguard Worker // Resource name of the repository, of the form 99*d5c09012SAndroid Build Coastguard Worker // `projects/<project>/repos/<repo>`. The repo name may contain slashes. 100*d5c09012SAndroid Build Coastguard Worker // eg, `projects/myproject/repos/name/with/slash` 101*d5c09012SAndroid Build Coastguard Worker string name = 1; 102*d5c09012SAndroid Build Coastguard Worker 103*d5c09012SAndroid Build Coastguard Worker // The disk usage of the repo, in bytes. Read-only field. Size is only 104*d5c09012SAndroid Build Coastguard Worker // returned by GetRepo. 105*d5c09012SAndroid Build Coastguard Worker int64 size = 2; 106*d5c09012SAndroid Build Coastguard Worker 107*d5c09012SAndroid Build Coastguard Worker // URL to clone the repository from Google Cloud Source Repositories. 108*d5c09012SAndroid Build Coastguard Worker // Read-only field. 109*d5c09012SAndroid Build Coastguard Worker string url = 3; 110*d5c09012SAndroid Build Coastguard Worker 111*d5c09012SAndroid Build Coastguard Worker // How this repository mirrors a repository managed by another service. 112*d5c09012SAndroid Build Coastguard Worker // Read-only field. 113*d5c09012SAndroid Build Coastguard Worker MirrorConfig mirror_config = 4; 114*d5c09012SAndroid Build Coastguard Worker} 115*d5c09012SAndroid Build Coastguard Worker 116*d5c09012SAndroid Build Coastguard Worker// Configuration to automatically mirror a repository from another 117*d5c09012SAndroid Build Coastguard Worker// hosting service, for example GitHub or BitBucket. 118*d5c09012SAndroid Build Coastguard Workermessage MirrorConfig { 119*d5c09012SAndroid Build Coastguard Worker // URL of the main repository at the other hosting service. 120*d5c09012SAndroid Build Coastguard Worker string url = 1; 121*d5c09012SAndroid Build Coastguard Worker 122*d5c09012SAndroid Build Coastguard Worker // ID of the webhook listening to updates to trigger mirroring. 123*d5c09012SAndroid Build Coastguard Worker // Removing this webhook from the other hosting service will stop 124*d5c09012SAndroid Build Coastguard Worker // Google Cloud Source Repositories from receiving notifications, 125*d5c09012SAndroid Build Coastguard Worker // and thereby disabling mirroring. 126*d5c09012SAndroid Build Coastguard Worker string webhook_id = 2; 127*d5c09012SAndroid Build Coastguard Worker 128*d5c09012SAndroid Build Coastguard Worker // ID of the SSH deploy key at the other hosting service. 129*d5c09012SAndroid Build Coastguard Worker // Removing this key from the other service would deauthorize 130*d5c09012SAndroid Build Coastguard Worker // Google Cloud Source Repositories from mirroring. 131*d5c09012SAndroid Build Coastguard Worker string deploy_key_id = 3; 132*d5c09012SAndroid Build Coastguard Worker} 133*d5c09012SAndroid Build Coastguard Worker 134*d5c09012SAndroid Build Coastguard Worker// Request for GetRepo. 135*d5c09012SAndroid Build Coastguard Workermessage GetRepoRequest { 136*d5c09012SAndroid Build Coastguard Worker // The name of the requested repository. Values are of the form 137*d5c09012SAndroid Build Coastguard Worker // `projects/<project>/repos/<repo>`. 138*d5c09012SAndroid Build Coastguard Worker string name = 1; 139*d5c09012SAndroid Build Coastguard Worker} 140*d5c09012SAndroid Build Coastguard Worker 141*d5c09012SAndroid Build Coastguard Worker// Request for ListRepos. 142*d5c09012SAndroid Build Coastguard Workermessage ListReposRequest { 143*d5c09012SAndroid Build Coastguard Worker // The project ID whose repos should be listed. Values are of the form 144*d5c09012SAndroid Build Coastguard Worker // `projects/<project>`. 145*d5c09012SAndroid Build Coastguard Worker string name = 1; 146*d5c09012SAndroid Build Coastguard Worker 147*d5c09012SAndroid Build Coastguard Worker // Maximum number of repositories to return; between 1 and 500. 148*d5c09012SAndroid Build Coastguard Worker // If not set or zero, defaults to 100 at the server. 149*d5c09012SAndroid Build Coastguard Worker int32 page_size = 2; 150*d5c09012SAndroid Build Coastguard Worker 151*d5c09012SAndroid Build Coastguard Worker // Resume listing repositories where a prior ListReposResponse 152*d5c09012SAndroid Build Coastguard Worker // left off. This is an opaque token that must be obtained from 153*d5c09012SAndroid Build Coastguard Worker // a recent, prior ListReposResponse's next_page_token field. 154*d5c09012SAndroid Build Coastguard Worker string page_token = 3; 155*d5c09012SAndroid Build Coastguard Worker} 156*d5c09012SAndroid Build Coastguard Worker 157*d5c09012SAndroid Build Coastguard Worker// Response for ListRepos. The size is not set in the returned repositories. 158*d5c09012SAndroid Build Coastguard Workermessage ListReposResponse { 159*d5c09012SAndroid Build Coastguard Worker // The listed repos. 160*d5c09012SAndroid Build Coastguard Worker repeated Repo repos = 1; 161*d5c09012SAndroid Build Coastguard Worker 162*d5c09012SAndroid Build Coastguard Worker // If non-empty, additional repositories exist within the project. These 163*d5c09012SAndroid Build Coastguard Worker // can be retrieved by including this value in the next ListReposRequest's 164*d5c09012SAndroid Build Coastguard Worker // page_token field. 165*d5c09012SAndroid Build Coastguard Worker string next_page_token = 2; 166*d5c09012SAndroid Build Coastguard Worker} 167*d5c09012SAndroid Build Coastguard Worker 168*d5c09012SAndroid Build Coastguard Worker// Request for CreateRepo 169*d5c09012SAndroid Build Coastguard Workermessage CreateRepoRequest { 170*d5c09012SAndroid Build Coastguard Worker // The project in which to create the repo. Values are of the form 171*d5c09012SAndroid Build Coastguard Worker // `projects/<project>`. 172*d5c09012SAndroid Build Coastguard Worker string parent = 1; 173*d5c09012SAndroid Build Coastguard Worker 174*d5c09012SAndroid Build Coastguard Worker // The repo to create. Only name should be set; setting other fields 175*d5c09012SAndroid Build Coastguard Worker // is an error. The project in the name should match the parent field. 176*d5c09012SAndroid Build Coastguard Worker Repo repo = 2; 177*d5c09012SAndroid Build Coastguard Worker} 178*d5c09012SAndroid Build Coastguard Worker 179*d5c09012SAndroid Build Coastguard Worker// Request for DeleteRepo. 180*d5c09012SAndroid Build Coastguard Workermessage DeleteRepoRequest { 181*d5c09012SAndroid Build Coastguard Worker // The name of the repo to delete. Values are of the form 182*d5c09012SAndroid Build Coastguard Worker // `projects/<project>/repos/<repo>`. 183*d5c09012SAndroid Build Coastguard Worker string name = 1; 184*d5c09012SAndroid Build Coastguard Worker} 185