aboutsummaryrefslogtreecommitdiffhomepage
path: root/third_party/googleapis/google/devtools/sourcerepo/v1/sourcerepo.proto
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/googleapis/google/devtools/sourcerepo/v1/sourcerepo.proto')
-rw-r--r--third_party/googleapis/google/devtools/sourcerepo/v1/sourcerepo.proto147
1 files changed, 147 insertions, 0 deletions
diff --git a/third_party/googleapis/google/devtools/sourcerepo/v1/sourcerepo.proto b/third_party/googleapis/google/devtools/sourcerepo/v1/sourcerepo.proto
new file mode 100644
index 0000000000..a50a30b1d4
--- /dev/null
+++ b/third_party/googleapis/google/devtools/sourcerepo/v1/sourcerepo.proto
@@ -0,0 +1,147 @@
+// Copyright 2017 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.devtools.sourcerepo.v1;
+
+import "google/api/annotations.proto";
+import "google/api/auth.proto";
+import "google/iam/v1/iam_policy.proto";
+import "google/iam/v1/policy.proto";
+import "google/protobuf/empty.proto";
+
+option go_package = "google.golang.org/genproto/googleapis/devtools/sourcerepo/v1;sourcerepo";
+option java_multiple_files = true;
+option java_outer_classname = "SourceRepoProto";
+option java_package = "com.google.devtools.sourcerepo.v1";
+
+
+// The Source Repo API service.
+service SourceRepo {
+ // Returns all repos belonging to a project.
+ rpc ListRepos(ListReposRequest) returns (ListReposResponse) {
+ option (google.api.http) = { get: "/v1/{name=projects/*}/repos" };
+ }
+
+ // Returns information about a repo.
+ rpc GetRepo(GetRepoRequest) returns (Repo) {
+ option (google.api.http) = { get: "/v1/{name=projects/*/repos/**}" };
+ }
+
+ // Creates a repo in the given project with the given name..
+ //
+ // If the named repository already exists, `CreateRepo` returns
+ // `ALREADY_EXISTS`.
+ rpc CreateRepo(CreateRepoRequest) returns (Repo) {
+ option (google.api.http) = { post: "/v1/{parent=projects/*}/repos" body: "repo" };
+ }
+
+ // Deletes a repo.
+ rpc DeleteRepo(DeleteRepoRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = { delete: "/v1/{name=projects/*/repos/**}" };
+ }
+
+ // Sets the access control policy on the specified resource. Replaces any
+ // existing policy.
+ rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) returns (google.iam.v1.Policy) {
+ option (google.api.http) = { post: "/v1/{resource=projects/*/repos/**}:setIamPolicy" body: "*" };
+ }
+
+ // Gets the access control policy for a resource.
+ // Returns an empty policy if the resource exists and does not have a policy
+ // set.
+ rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) returns (google.iam.v1.Policy) {
+ option (google.api.http) = { get: "/v1/{resource=projects/*/repos/**}:getIamPolicy" };
+ }
+
+ // Returns permissions that a caller has on the specified resource.
+ // If the resource does not exist, this will return an empty set of
+ // permissions, not a NOT_FOUND error.
+ rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) returns (google.iam.v1.TestIamPermissionsResponse) {
+ option (google.api.http) = { post: "/v1/{resource=projects/*/repos/**}:testIamPermissions" body: "*" };
+ }
+}
+
+// A repository (or repo) is a Git repository storing versioned source content.
+message Repo {
+ // Resource name of the repository, of the form
+ // `projects/<project>/repos/<repo>`.
+ string name = 1;
+
+ // The size in bytes of the repo.
+ int64 size = 2;
+
+ // URL to clone the repository from Google Cloud Source Repositories.
+ string url = 3;
+
+ // How this repository mirrors a repository managed by another service.
+ MirrorConfig mirror_config = 4;
+}
+
+// Configuration to automatically mirror a repository from another
+// hosting service, for example GitHub or BitBucket.
+message MirrorConfig {
+ // URL of the main repository at the other hosting service.
+ string url = 1;
+
+ // ID of the webhook listening to updates to trigger mirroring.
+ // Removing this webook from the other hosting service will stop
+ // Google Cloud Source Repositories from receiving notifications,
+ // and thereby disabling mirroring.
+ string webhook_id = 2;
+
+ // ID of the SSH deploy key at the other hosting service.
+ // Removing this key from the other service would deauthorize
+ // Google Cloud Source Repositories from mirroring.
+ string deploy_key_id = 3;
+}
+
+// Request for GetRepo.
+message GetRepoRequest {
+ // The name of the requested repository. Values are of the form
+ // `projects/<project>/repos/<repo>`.
+ string name = 1;
+}
+
+// Request for ListRepos.
+message ListReposRequest {
+ // The project ID whose repos should be listed. Values are of the form
+ // `projects/<project>`.
+ string name = 1;
+}
+
+// Response for ListRepos.
+message ListReposResponse {
+ // The listed repos.
+ repeated Repo repos = 1;
+}
+
+// Request for CreateRepo
+message CreateRepoRequest {
+ // The project in which to create the repo. Values are of the form
+ // `projects/<project>`.
+ string parent = 1;
+
+ // The repo to create. Only name needs to be set; all other fields
+ // are currently ignored.
+ Repo repo = 2;
+}
+
+// Request for DeleteRepo.
+message DeleteRepoRequest {
+ // The name of the repo to delete. Values are of the form
+ // `projects/<project>/repos/<repo>`.
+ string name = 1;
+}