blob: 0200a33cf4b94131ba10f6426314c6f367194c0d [file] [edit]
// Copyright 2019 The Grafeas Authors. All rights reserved.
//
// 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 grafeas.v1.project;
option go_package = "github.com/grafeas/grafeas/proto/v1/project_go_proto";
option java_multiple_files = true;
option java_package = "io.grafeas.v1.project";
option objc_class_prefix = "GRA";
import "google/api/annotations.proto";
import "google/api/resource.proto";
import "google/protobuf/empty.proto";
// [Projects](https://grafeas.io) API.
//
// Manages Grafeas `Projects`. Projects contain sets of other Grafeas entities
// such as `Notes` and `Occurrences`.
service Projects {
// Creates a new project.
rpc CreateProject(CreateProjectRequest) returns (Project) {
option (google.api.http) = {
post: "/v1/projects"
body: "project"
};
}
// Gets the specified project.
rpc GetProject(GetProjectRequest) returns (Project) {
option (google.api.http) = {
get: "/v1/{name=projects/*}"
};
}
// Lists projects.
rpc ListProjects(ListProjectsRequest) returns (ListProjectsResponse) {
option (google.api.http) = {
get: "/v1/projects"
};
}
// Deletes the specified project.
rpc DeleteProject(DeleteProjectRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1/{name=projects/*}"
};
}
}
// Request to create a new project.
message CreateProjectRequest {
// The project to create.
Project project = 1;
}
// Request to get a project.
message GetProjectRequest {
// The name of the project in the form of `projects/{PROJECT_ID}`.
string name = 1 [(google.api.resource_reference).type = "grafeas.io/Project"];
}
// Request to list projects.
message ListProjectsRequest {
// The filter expression.
string filter = 1;
// Number of projects to return in the list.
int32 page_size = 2;
// Token to provide to skip to a particular spot in the list.
string page_token = 3;
}
// Request to delete a project.
message DeleteProjectRequest {
// The name of the project in the form of `projects/{PROJECT_ID}`.
string name = 1 [(google.api.resource_reference).type = "grafeas.io/Project"];
}
// Response for listing projects.
message ListProjectsResponse {
// The projects requested.
repeated Project projects = 1;
// The next pagination token in the list response. It should be used as
// `page_token` for the following request. An empty value means no more
// results.
string next_page_token = 2;
}
// Describes a Grafeas project.
message Project {
option (google.api.resource) = {
type: "grafeas.io/Project"
pattern: "projects/{project}"
};
// The name of the project in the form of `projects/{PROJECT_ID}`.
string name = 1;
}