xref: /aosp_15_r20/external/googleapis/google/devtools/sourcerepo/v1/sourcerepo.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
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