diff options
Diffstat (limited to 'third_party/googleapis/google/devtools/sourcerepo/v1/sourcerepo.proto')
-rw-r--r-- | third_party/googleapis/google/devtools/sourcerepo/v1/sourcerepo.proto | 147 |
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; +} |